diff --git a/lib/lws-plat-unix.c b/lib/lws-plat-unix.c index 3466284f..ad171883 100644 --- a/lib/lws-plat-unix.c +++ b/lib/lws-plat-unix.c @@ -116,7 +116,7 @@ LWS_VISIBLE void lwsl_emit_syslog(int level, const char *line) LWS_VISIBLE int lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi) { - struct lws_context_per_thread *pt = &context->pt[tsi]; + struct lws_context_per_thread *pt; int n = -1, m, c; char buf; @@ -125,6 +125,8 @@ lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi) if (!context || !context->vhost_list) return 1; + pt = &context->pt[tsi]; + if (timeout_ms < 0) goto faked_service; diff --git a/lib/lws-plat-win.c b/lib/lws-plat-win.c index 49a7fc80..2df5cbd2 100644 --- a/lib/lws-plat-win.c +++ b/lib/lws-plat-win.c @@ -156,7 +156,7 @@ LWS_VISIBLE void lwsl_emit_syslog(int level, const char *line) LWS_VISIBLE int lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi) { - struct lws_context_per_thread *pt = &context->pt[tsi]; + struct lws_context_per_thread *pt; WSANETWORKEVENTS networkevents; struct lws_pollfd *pfd; struct lws *wsi; @@ -168,6 +168,8 @@ lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi) if (context == NULL) return 1; + pt = &context->pt[tsi]; + if (!context->service_tid_detected) { struct lws _lws;