Restructure free_command to afford protocol module more control
This allows the protocol module first cleanup opportunity on Txn
This commit is contained in:
25
asyncqueue.c
25
asyncqueue.c
@ -95,15 +95,24 @@ static const char *state_name(AsyncState the_state)
|
|||||||
*/
|
*/
|
||||||
static void free_command(pAQ_Cmd myCmd)
|
static void free_command(pAQ_Cmd myCmd)
|
||||||
{
|
{
|
||||||
free(myCmd->tran->out_buf);
|
if (myCmd) {
|
||||||
free(myCmd->tran->inp_buf);
|
pAsyncTxn myTxn = myCmd->tran;
|
||||||
if (myCmd->tran->proto_private)
|
if (myTxn) {
|
||||||
if (myCmd->tran->kill_private)
|
/*
|
||||||
myCmd->tran->kill_private(myCmd->tran);
|
* Allow kill_private to clean it all if it wants
|
||||||
else
|
*/
|
||||||
free(myCmd->tran->proto_private);
|
if (myTxn->kill_private)
|
||||||
free(myCmd->tran);
|
myTxn->kill_private(myTxn);
|
||||||
|
if (myTxn->out_buf)
|
||||||
|
free(myTxn->out_buf);
|
||||||
|
if (myTxn->inp_buf)
|
||||||
|
free(myTxn->inp_buf);
|
||||||
|
if (myTxn->proto_private)
|
||||||
|
free(myTxn->proto_private);
|
||||||
|
free(myTxn);
|
||||||
|
}
|
||||||
free(myCmd);
|
free(myCmd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------- Local ------------------------------------
|
/* ---------------------------- Local ------------------------------------
|
||||||
|
Reference in New Issue
Block a user