mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-27 23:15:18 +00:00
close callback: make unregister clean after connect close event
If connect close is fired then following unregister will fail as we set callback to NULL and thus callback equality checking will fail. Callback is set to NULL to make it fired only one time probabaly. Instead lets use connection equality to NULL to check if callback is already fired. Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
This commit is contained in:
parent
a16cd9a6eb
commit
42b0f7510d
@ -239,7 +239,7 @@ void virConnectCloseCallbackDataCall(virConnectCloseCallbackDataPtr close,
|
||||
{
|
||||
virObjectLock(close);
|
||||
|
||||
if (!close->callback)
|
||||
if (!close->conn)
|
||||
goto exit;
|
||||
|
||||
VIR_DEBUG("Triggering connection close callback %p reason=%d, opaque=%p",
|
||||
@ -248,7 +248,6 @@ void virConnectCloseCallbackDataCall(virConnectCloseCallbackDataPtr close,
|
||||
|
||||
if (close->freeCallback)
|
||||
close->freeCallback(close->opaque);
|
||||
close->callback = NULL;
|
||||
close->freeCallback = NULL;
|
||||
virObjectUnref(close->conn);
|
||||
close->conn = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user