dcb.c:dcb_close prevent redundant execution of dcb_close for one DCB
This commit is contained in:
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user