[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30864 - in libmicrohttpd: . src/microhttpd
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30864 - in libmicrohttpd: . src/microhttpd |
Date: |
Tue, 26 Nov 2013 01:28:14 +0100 |
Author: grothoff
Date: 2013-11-26 01:28:14 +0100 (Tue, 26 Nov 2013)
New Revision: 30864
Modified:
libmicrohttpd/ChangeLog
libmicrohttpd/src/microhttpd/daemon.c
Log:
-fix shutdown race for wpipe on non-Linux systems
Modified: libmicrohttpd/ChangeLog
===================================================================
--- libmicrohttpd/ChangeLog 2013-11-25 22:31:22 UTC (rev 30863)
+++ libmicrohttpd/ChangeLog 2013-11-26 00:28:14 UTC (rev 30864)
@@ -1,3 +1,7 @@
+Tue Nov 26 01:26:15 CET 2013
+ Fix race on shutdown signal with thread pool on non-Linux
+ systems by signalling n times for n threads. -CG
+
Sun Nov 24 13:41:15 CET 2013
Introduce state to mark connections in suspended state (with
epoll); add missing locking operations in MHD_suspend_connection.
Modified: libmicrohttpd/src/microhttpd/daemon.c
===================================================================
--- libmicrohttpd/src/microhttpd/daemon.c 2013-11-25 22:31:22 UTC (rev
30863)
+++ libmicrohttpd/src/microhttpd/daemon.c 2013-11-26 00:28:14 UTC (rev
30864)
@@ -1894,7 +1894,7 @@
const fd_set *except_fd_set)
{
int ds;
- int tmp;
+ char tmp;
struct MHD_Connection *pos;
struct MHD_Connection *next;
@@ -3812,7 +3812,7 @@
if (-1 != daemon->wpipe[1])
{
if (1 != WRITE (daemon->wpipe[1], "e", 1))
- MHD_PANIC ("failed to signal shutdownn via pipe");
+ MHD_PANIC ("failed to signal shutdown via pipe");
}
#ifdef HAVE_LISTEN_SHUTDOWN
else
@@ -3842,6 +3842,11 @@
/* MHD_USE_NO_LISTEN_SOCKET disables thread pools, hence we need to
check */
for (i = 0; i < daemon->worker_pool_size; ++i)
{
+ if (-1 != daemon->wpipe[1])
+ {
+ if (1 != WRITE (daemon->wpipe[1], "e", 1))
+ MHD_PANIC ("failed to signal shutdown via pipe");
+ }
if (0 != (rc = pthread_join (daemon->worker_pool[i].pid, &unused)))
MHD_PANIC ("Failed to join a thread\n");
close_all_connections (&daemon->worker_pool[i]);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30864 - in libmicrohttpd: . src/microhttpd,
gnunet <=