From 2029f8269be140e569d2c9e6d7de7d2afb0ed1fb Mon Sep 17 00:00:00 2001 From: Jonathon Jongsma Date: Wed, 4 Sep 2019 12:23:30 -0500 Subject: [PATCH] qemu: update threading info about domain object refs Since commit fd9ef3b31e, virDomainFindByUUIDRef() no longer exists and all virDomainObjListFindBy*() functions now increment the reference count. Signed-off-by: Jonathon Jongsma Reviewed-by: Daniel Henrique Barboza Reviewed-by: Pavel Hrdina --- src/qemu/THREADS.txt | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/qemu/THREADS.txt b/src/qemu/THREADS.txt index d17f3f4e0c..aa428fda6a 100644 --- a/src/qemu/THREADS.txt +++ b/src/qemu/THREADS.txt @@ -25,27 +25,17 @@ There are a number of locks on various objects * virDomainObjPtr - Will be locked after calling any of the virDomainObjListFindBy{ID,Name,UUID} - methods. However, preferred method is qemuDomObjFromDomain() that uses - virDomainFindByUUIDRef() which also increases the reference counter and - finds the domain in the domain list without blocking all other lookups. - When the domain is locked and the reference increased, the preferred way of - decrementing the reference counter and unlocking the domain is using the + Will be locked and the reference counter will be increased after calling + any of the virDomainObjListFindBy{ID,Name,UUID} methods. The preferred way + of decrementing the reference counter and unlocking the domain is using the virDomainObjEndAPI() function. Lock must be held when changing/reading any variable in the virDomainObjPtr - If the lock needs to be dropped & then re-acquired for a short period of - time, the reference count must be incremented first using virDomainObjRef(). - There is no need to increase the reference count if qemuDomObjFromDomain() - was used for looking up the domain. In this case there is one reference - already added by that function. - This lock must not be held for anything which sleeps/waits (i.e. monitor commands). - * qemuMonitorPrivatePtr: Job conditions Since virDomainObjPtr lock must not be held during sleeps, the job -- GitLab