diff --git a/lib/lws-plat-unix.c b/lib/lws-plat-unix.c index b48e10ce..18e1558e 100644 --- a/lib/lws-plat-unix.c +++ b/lib/lws-plat-unix.c @@ -103,7 +103,7 @@ LWS_VISIBLE void lwsl_emit_syslog(int level, const char *line) LWS_VISIBLE LWS_EXTERN 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; @@ -112,6 +112,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 7d3ebdd8..fa34037c 100644 --- a/lib/lws-plat-win.c +++ b/lib/lws-plat-win.c @@ -149,7 +149,7 @@ LWS_VISIBLE void lwsl_emit_syslog(int level, const char *line) LWS_VISIBLE LWS_EXTERN 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; @@ -161,6 +161,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;