ppoll fix signal mask sense

Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 6dc4d1d..01dc58e 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -1354,8 +1354,9 @@
 
 	timeout_ts.tv_sec = timeout_ms / 1000;
 	timeout_ts.tv_nsec = timeout_ms % 1000;
-	sigemptyset(&sigmask);
-	sigaddset(&sigmask, SIGUSR2);
+
+	sigprocmask(SIG_BLOCK, NULL, &sigmask);
+	sigdelset(&sigmask, SIGUSR2);
 
 	/* wait for something to need service */
 
@@ -1369,8 +1370,12 @@
 		return 0;
 	}
 
-	if (n < 0)
-		return -1;
+	if (n < 0) {
+		if (errno != EINTR)
+			return -1;
+		else
+			return 0;
+	}
 
 	/* any socket with events to service? */
 
@@ -2100,6 +2105,13 @@
 	}
 
 	signal(SIGUSR2, lws_sigusr2);
+	{
+		sigset_t mask;
+		sigemptyset (&mask);
+		sigaddset (&mask, SIGUSR2);
+
+		sigprocmask(SIG_BLOCK, &mask, NULL);
+	}
 
 #ifdef SSL_OP_NO_COMPRESSION
 	SSL_CTX_set_options(context->ssl_ctx, SSL_OP_NO_COMPRESSION);