win: move uv__insert_pending_req to core.c (#4828)
Large-ish functions with many call sites in different translation units should not be `static inline`, that just results in lots of code duplication which the linker may or may not deduplicate. When it does, the linker has to do extra work; when it doesn't, binaries get bigger. Refs: https://github.com/libuv/libuv/issues/4819
This commit is contained in:
parent
b36dc711e6
commit
0070322ef2
@ -854,3 +854,26 @@ int uv__getsockpeername(const uv_handle_t* handle,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void uv__insert_pending_req(uv_loop_t* loop, uv_req_t* req) {
|
||||||
|
req->next_req = NULL;
|
||||||
|
if (loop->pending_reqs_tail) {
|
||||||
|
#ifdef _DEBUG
|
||||||
|
/* Ensure the request is not already in the queue, or the queue
|
||||||
|
* will get corrupted.
|
||||||
|
*/
|
||||||
|
uv_req_t* current = loop->pending_reqs_tail;
|
||||||
|
do {
|
||||||
|
assert(req != current);
|
||||||
|
current = current->next_req;
|
||||||
|
} while (current != loop->pending_reqs_tail);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
req->next_req = loop->pending_reqs_tail->next_req;
|
||||||
|
loop->pending_reqs_tail->next_req = req;
|
||||||
|
loop->pending_reqs_tail = req;
|
||||||
|
} else {
|
||||||
|
req->next_req = req;
|
||||||
|
loop->pending_reqs_tail = req;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -81,27 +81,6 @@
|
|||||||
uv_fatal_error(GetLastError(), "PostQueuedCompletionStatus"); \
|
uv_fatal_error(GetLastError(), "PostQueuedCompletionStatus"); \
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE static void uv__insert_pending_req(uv_loop_t* loop, uv_req_t* req) {
|
void uv__insert_pending_req(uv_loop_t* loop, uv_req_t* req);
|
||||||
req->next_req = NULL;
|
|
||||||
if (loop->pending_reqs_tail) {
|
|
||||||
#ifdef _DEBUG
|
|
||||||
/* Ensure the request is not already in the queue, or the queue
|
|
||||||
* will get corrupted.
|
|
||||||
*/
|
|
||||||
uv_req_t* current = loop->pending_reqs_tail;
|
|
||||||
do {
|
|
||||||
assert(req != current);
|
|
||||||
current = current->next_req;
|
|
||||||
} while(current != loop->pending_reqs_tail);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
req->next_req = loop->pending_reqs_tail->next_req;
|
|
||||||
loop->pending_reqs_tail->next_req = req;
|
|
||||||
loop->pending_reqs_tail = req;
|
|
||||||
} else {
|
|
||||||
req->next_req = req;
|
|
||||||
loop->pending_reqs_tail = req;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* UV_WIN_REQ_INL_H_ */
|
#endif /* UV_WIN_REQ_INL_H_ */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user