mirror of
https://github.com/moparisthebest/curl
synced 2024-12-23 08:38:49 -05:00
multi: update pending list when removing handle
when removing a handle, most of the lists are updated but pending list is not updated. Updating now. Closes #6713
This commit is contained in:
parent
4088b25b33
commit
a2bbc3ac8c
13
lib/multi.c
13
lib/multi.c
@ -824,6 +824,17 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remove from the pending list if it is there. Otherwise this will
|
||||||
|
remain on the pending list forever due to the state change. */
|
||||||
|
for(e = multi->pending.head; e; e = e->next) {
|
||||||
|
struct Curl_easy *curr_data = e->ptr;
|
||||||
|
|
||||||
|
if(curr_data == data) {
|
||||||
|
Curl_llist_remove(&multi->pending, e, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* make the previous node point to our next */
|
/* make the previous node point to our next */
|
||||||
if(data->prev)
|
if(data->prev)
|
||||||
data->prev->next = data->next;
|
data->prev->next = data->next;
|
||||||
@ -840,6 +851,8 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
|
|||||||
We do not touch the easy handle here! */
|
We do not touch the easy handle here! */
|
||||||
multi->num_easy--; /* one less to care about now */
|
multi->num_easy--; /* one less to care about now */
|
||||||
|
|
||||||
|
process_pending_handles(multi);
|
||||||
|
|
||||||
Curl_update_timer(multi);
|
Curl_update_timer(multi);
|
||||||
return CURLM_OK;
|
return CURLM_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user