mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
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 <jjongsma@redhat.com> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
ec78c9a0ff
commit
2029f8269b
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user