diff --git a/lib/libev.c b/lib/libev.c index 40db6ed2..43c53d96 100644 --- a/lib/libev.c +++ b/lib/libev.c @@ -138,6 +138,9 @@ lws_libev_destroyloop(struct lws_context *context, int tsi) if (!(context->options & LWS_SERVER_OPTION_LIBEV)) return; + if (!pt->io_loop_ev) + return; + ev_io_stop(pt->io_loop_ev, &pt->w_accept.ev_watcher); if (context->use_ev_sigint) ev_signal_stop(pt->io_loop_ev, diff --git a/lib/libuv.c b/lib/libuv.c index e3d68c66..461dc3ea 100644 --- a/lib/libuv.c +++ b/lib/libuv.c @@ -124,6 +124,9 @@ lws_libuv_destroyloop(struct lws_context *context, int tsi) if (!(context->options & LWS_SERVER_OPTION_LIBUV)) return; + if (!pt->io_loop_uv) + return; + if (context->use_ev_sigint) uv_signal_stop(&pt->w_sigint.uv_watcher); for (m = 0; m < ARRAY_SIZE(sigs); m++)