fix failure to terminate quickly in thread-per-connection mode if clients have open connections

This commit is contained in:
Christian Grothoff
2014-06-26 19:07:19 +00:00
parent 280d6c473f
commit ed9dfcdad4
3 changed files with 7 additions and 2 deletions
+5
View File
@@ -1,3 +1,8 @@
Thu Jun 26 21:06:04 CEST 2014
Fix failure to terminate 'instantly' in thread-per-connection
mode if there is a client with open connections.
Thanks to Kenneth Mastro for reporting. -CG
Sun Jun 22 12:22:08 CEST 2014
Actually, avoid locking on response as responses must
not be modified in a connection-specific way; instead
+1 -1
View File
@@ -130,7 +130,7 @@ typedef intptr_t ssize_t;
* Current version of the library.
* 0x01093001 = 1.9.30-1.
*/
#define MHD_VERSION 0x00093703
#define MHD_VERSION 0x00093704
/**
* MHD-internal return code for "YES".
+1 -1
View File
@@ -3996,7 +3996,7 @@ close_all_connections (struct MHD_Daemon *daemon)
if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
(MHD_YES != MHD_mutex_lock_ (&daemon->cleanup_connection_mutex)) )
MHD_PANIC ("Failed to acquire cleanup mutex\n");
for (pos = daemon->connections_head; NULL != pos; pos = pos->nextX)
for (pos = daemon->connections_head; NULL != pos; pos = pos->next)
shutdown (pos->socket_fd,
(pos->read_closed == MHD_YES) ? SHUT_WR : SHUT_RDWR);
if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&