summaryrefslogtreecommitdiff
path: root/libs/libcurl/src/multihandle.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libcurl/src/multihandle.h')
-rw-r--r--libs/libcurl/src/multihandle.h24
1 files changed, 11 insertions, 13 deletions
diff --git a/libs/libcurl/src/multihandle.h b/libs/libcurl/src/multihandle.h
index a19c399af7..37a025df21 100644
--- a/libs/libcurl/src/multihandle.h
+++ b/libs/libcurl/src/multihandle.h
@@ -33,7 +33,7 @@
struct connectdata;
struct Curl_message {
- struct Curl_llist_element list;
+ struct Curl_llist_node list;
/* the 'CURLMsg' is the part that is visible to the external user */
struct CURLMsg extmsg;
};
@@ -86,20 +86,17 @@ struct Curl_multi {
this multi handle with an easy handle. Set this to CURL_MULTI_HANDLE. */
unsigned int magic;
- /* We have a doubly-linked list with easy handles */
- struct Curl_easy *easyp;
- struct Curl_easy *easylp; /* last node */
-
unsigned int num_easy; /* amount of entries in the linked list above. */
unsigned int num_alive; /* amount of easy handles that are added but have
not yet reached COMPLETE state */
struct Curl_llist msglist; /* a list of messages from completed transfers */
- struct Curl_llist pending; /* Curl_easys that are in the
- MSTATE_PENDING state */
- struct Curl_llist msgsent; /* Curl_easys that are in the
- MSTATE_MSGSENT state */
+ /* Each added easy handle is added to ONE of these three lists */
+ struct Curl_llist process; /* not in PENDING or MSGSENT */
+ struct Curl_llist pending; /* in PENDING */
+ struct Curl_llist msgsent; /* in MSGSENT */
+ curl_off_t next_easy_mid; /* next multi-id for easy handle added */
/* callback function and user data pointer for the *socket() API */
curl_socket_callback socket_cb;
@@ -141,7 +138,7 @@ struct Curl_multi {
struct Curl_hash proto_hash;
/* Shared connection cache (bundles)*/
- struct conncache conn_cache;
+ struct cpool cpool;
long max_host_connections; /* if >0, a fixed limit of the maximum number
of connections per host */
@@ -154,10 +151,11 @@ struct Curl_multi {
/* timer callback and user data pointer for the *socket() API */
curl_multi_timer_callback timer_cb;
void *timer_userp;
- struct curltime timer_lastcall; /* the fixed time for the timeout for the
- previous callback */
+ long last_timeout_ms; /* the last timeout value set via timer_cb */
+ struct curltime last_expire_ts; /* timestamp of last expiry */
+
#ifdef USE_WINSOCK
- WSAEVENT wsa_event; /* winsock event used for waits */
+ WSAEVENT wsa_event; /* Winsock event used for waits */
#else
#ifdef ENABLE_WAKEUP
curl_socket_t wakeup_pair[2]; /* eventfd()/pipe()/socketpair() used for