Don't destroy ev/uv loops if they haven't been created yet
diff --git a/lib/libev.c b/lib/libev.c
index 40db6ed..43c53d9 100644
--- a/lib/libev.c
+++ b/lib/libev.c
@@ -138,6 +138,9 @@
 	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 e3d68c6..461dc3e 100644
--- a/lib/libuv.c
+++ b/lib/libuv.c
@@ -124,6 +124,9 @@
 	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++)