add http fast quit
This commit is contained in:
parent
15f690dd6d
commit
59c59362f3
|
@ -194,18 +194,21 @@ static void httpDestroyMsg(SHttpMsg* msg) {
|
||||||
|
|
||||||
static void httpMayDiscardMsg(SHttpModule* http, SAsyncItem* item) {
|
static void httpMayDiscardMsg(SHttpModule* http, SAsyncItem* item) {
|
||||||
SHttpMsg *msg = NULL, *quitMsg = NULL;
|
SHttpMsg *msg = NULL, *quitMsg = NULL;
|
||||||
int8_t quit = atomic_load_8(&http->quit);
|
if (atomic_load_8(&http->quit) == 0) {
|
||||||
if (quit == 1) {
|
return;
|
||||||
while (!QUEUE_IS_EMPTY(&item->qmsg)) {
|
}
|
||||||
queue* h = QUEUE_HEAD(&item->qmsg);
|
|
||||||
QUEUE_REMOVE(h);
|
while (!QUEUE_IS_EMPTY(&item->qmsg)) {
|
||||||
msg = QUEUE_DATA(h, SHttpMsg, q);
|
queue* h = QUEUE_HEAD(&item->qmsg);
|
||||||
if (!msg->quit) {
|
QUEUE_REMOVE(h);
|
||||||
httpDestroyMsg(msg);
|
msg = QUEUE_DATA(h, SHttpMsg, q);
|
||||||
} else {
|
if (!msg->quit) {
|
||||||
quitMsg = msg;
|
httpDestroyMsg(msg);
|
||||||
}
|
} else {
|
||||||
|
quitMsg = msg;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (quitMsg != NULL) {
|
||||||
QUEUE_PUSH(&item->qmsg, &quitMsg->q);
|
QUEUE_PUSH(&item->qmsg, &quitMsg->q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue