diff --git a/lib/libev.c b/lib/libev.c index 40db6ed2a1e328e0303e1305e81c72bcbaf94f5d..43c53d96a52afce6bf3f3a63acbd1580629495aa 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 e3d68c668712013e5433b954005532be535cb4fa..461dc3eaef8c03c05aa9f55321b8ebb257779d52 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++)