dcb.c:dcb_close prevent redundant execution of dcb_close for one DCB

This commit is contained in:
VilhoRaatikka
2014-11-03 22:07:54 +02:00
parent ca816743e8
commit 6ed8836b15
2 changed files with 22 additions and 17 deletions

View File

@ -1161,9 +1161,9 @@ dcb_close(DCB *dcb)
dcb, dcb,
STRDCBSTATE(dcb->state)))); STRDCBSTATE(dcb->state))));
} }
}
ss_dassert(dcb->state == DCB_STATE_NOPOLLING || if (rc == 0)
dcb->state == DCB_STATE_ZOMBIE); {
/** /**
* close protocol and router session * close protocol and router session
*/ */
@ -1178,6 +1178,11 @@ dcb_close(DCB *dcb)
{ {
dcb_add_to_zombieslist(dcb); dcb_add_to_zombieslist(dcb);
} }
}
}
ss_dassert(dcb->state == DCB_STATE_NOPOLLING ||
dcb->state == DCB_STATE_ZOMBIE);
} }
/** /**

View File

@ -292,7 +292,8 @@ poll_remove_dcb(DCB *dcb)
CHK_DCB(dcb); CHK_DCB(dcb);
/*< It is possible that dcb has already been removed from the set */ /*< It is possible that dcb has already been removed from the set */
if (dcb->state != DCB_STATE_POLLING) { if (dcb->state != DCB_STATE_POLLING)
{
if (dcb->state == DCB_STATE_NOPOLLING || if (dcb->state == DCB_STATE_NOPOLLING ||
dcb->state == DCB_STATE_ZOMBIE) dcb->state == DCB_STATE_ZOMBIE)
{ {
@ -300,7 +301,6 @@ poll_remove_dcb(DCB *dcb)
} }
goto return_rc; goto return_rc;
} }
/*< /*<
* Set state to NOPOLLING and remove dcb from poll set. * Set state to NOPOLLING and remove dcb from poll set.
*/ */