mirror of
https://github.com/curl/curl.git
synced 2026-04-30 09:07:55 +03:00
multi-notify: add check macro
Since Curl_mntfy_dispatch_all() is called with high frequency and mostly unnecessary, add a check macro to avoid the call when not needed. Closes #20034
This commit is contained in:
parent
c85994d53b
commit
d405ac84ea
3 changed files with 9 additions and 3 deletions
|
|
@ -2798,7 +2798,7 @@ static CURLMcode multi_perform(struct Curl_multi *multi,
|
|||
if(multi_ischanged(multi, TRUE))
|
||||
process_pending_handles(multi);
|
||||
|
||||
if(!returncode)
|
||||
if(!returncode && CURL_MNTFY_HAS_ENTRIES(multi))
|
||||
returncode = Curl_mntfy_dispatch_all(multi);
|
||||
|
||||
/*
|
||||
|
|
@ -3195,7 +3195,7 @@ out:
|
|||
if(multi_ischanged(multi, TRUE))
|
||||
process_pending_handles(multi);
|
||||
|
||||
if(!mresult)
|
||||
if(!mresult && CURL_MNTFY_HAS_ENTRIES(multi))
|
||||
mresult = Curl_mntfy_dispatch_all(multi);
|
||||
|
||||
if(running_handles) {
|
||||
|
|
|
|||
|
|
@ -174,6 +174,7 @@ void Curl_mntfy_add(struct Curl_easy *data, unsigned int type)
|
|||
mntfy_chunk_append(tail, data, (uint32_t)type);
|
||||
else
|
||||
multi->ntfy.failure = CURLM_OUT_OF_MEMORY;
|
||||
multi->ntfy.has_entries = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -201,5 +202,7 @@ CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi)
|
|||
multi->ntfy.failure = CURLM_OK; /* reset, once delivered */
|
||||
return mresult;
|
||||
}
|
||||
else
|
||||
multi->ntfy.has_entries = FALSE;
|
||||
return CURLM_OK;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,9 +33,10 @@ struct curl_multi_ntfy {
|
|||
curl_notify_callback ntfy_cb;
|
||||
void *ntfy_cb_data;
|
||||
struct uint32_bset enabled;
|
||||
CURLMcode failure;
|
||||
struct mntfy_chunk *head;
|
||||
struct mntfy_chunk *tail;
|
||||
CURLMcode failure;
|
||||
BIT(has_entries);
|
||||
};
|
||||
|
||||
void Curl_mntfy_init(struct Curl_multi *multi);
|
||||
|
|
@ -53,6 +54,8 @@ void Curl_mntfy_add(struct Curl_easy *data, unsigned int type);
|
|||
Curl_mntfy_add((d), (t)); \
|
||||
} while(0)
|
||||
|
||||
#define CURL_MNTFY_HAS_ENTRIES(m) ((m)->ntfy.has_entries)
|
||||
|
||||
CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi);
|
||||
|
||||
#endif /* HEADER_CURL_MULTI_NTFY_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue