port forced service checking from libuv
Related to second part of https://github.com/warmcat/libwebsockets/issues/638
This commit is contained in:
parent
846a3caf80
commit
f7dd9d027a
2 changed files with 14 additions and 1 deletions
|
@ -52,7 +52,7 @@ lws_uv_idle(uv_idle_t *handle
|
|||
if (!lws_service_adjust_timeout(pt->context, 1, pt->tid))
|
||||
/* yes... come back again later */
|
||||
lwsl_debug("%s: done again\n", __func__);
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
/* there is nobody who needs service forcing, shut down idle */
|
||||
|
|
|
@ -144,6 +144,19 @@ lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi)
|
|||
context->service_tid = context->service_tid_detected;
|
||||
|
||||
timeout_ms = lws_service_adjust_timeout(context, timeout_ms, tsi);
|
||||
/*
|
||||
* is there anybody with pending stuff that needs service forcing?
|
||||
*/
|
||||
if (!timeout_ms) {
|
||||
/* -1 timeout means just do forced service */
|
||||
lws_plat_service_tsi(context, -1, pt->tid);
|
||||
/* still somebody left who wants forced service? */
|
||||
if (!lws_service_adjust_timeout(context, 1, pt->tid)) {
|
||||
/* yes... come back again later */
|
||||
lwsl_debug("%s: done again\n", __func__);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
n = poll(pt->fds, pt->fds_count, timeout_ms);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue