]> granicus.if.org Git - curl/commit
multi: convert CURLM_STATE_CONNECT_PEND handling to a list
authorDaniel Stenberg <daniel@haxx.se>
Tue, 2 Sep 2014 07:29:50 +0000 (09:29 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 2 Sep 2014 08:17:47 +0000 (10:17 +0200)
commit3c8c873252fa486d1e57fa28b8b455bfdb487f77
treef0971a644a3d2d3ae14b0f5c5d57e31a7c216c1c
parent4901ec232469deddcda21b6b70d2db1cae93a2bb
multi: convert CURLM_STATE_CONNECT_PEND handling to a list

... instead of scanning through all handles, stash only the actual
handles that are in that state in the new ->pending list and scan that
list only. It should be mostly empty or very short. And only used for
pipelining.

This avoids a rather hefty slow-down especially notable if you add many
handles to the same multi handle. Regression introduced in commit
0f147887 (version 7.30.0).

Bug: http://curl.haxx.se/mail/lib-2014-07/0206.html
Reported-by: David Meyer
lib/multi.c
lib/multihandle.h