aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog29
1 files changed, 29 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index cecfb9fe..8f71eeb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
1Tue Dec 3 21:05:38 CET 2013
2 Signaling n times for shutdown works, but for resume we need to
3 wake up the correct daemon. Even if we signal n times in that
4 case also, there's no guarantee that some daemon can't run
5 through its select loop more than once before the daemon we want
6 to wake up gets a chance to read. Thus we need a signal pipe
7 per thread in the thread pool IF MHD_suspend_connection is used.
8 This introduces a new flag MHD_USE_SUSPEND_RESUME to add those
9 additional pipes and only allow MHD_suspend_connection to be
10 used in conjunction with this flag.
11
12 Also, as MHD_resume_connection() will be called on a non-daemon
13 thread, but none of the queue insert/delete calls are thread safe,
14 we need to be concerned about (a) corrupting the queue, and (b)
15 having to add mutex protection around every access to the queues,
16 including loops through timer queues, etc. This wasn't a problem
17 before adding resume; even suspend should be safe since it happens
18 in a callback from the daemon.
19
20 I think it's easier to (a) have MHD_suspend_connection() move the
21 connection to a suspended queue, (b) have MHD_resume_connection()
22 mark the connection as resuming, and then (c) do all the actual
23 queue manipulations in MHD_select (poll, epoll, etc.) to move the
24 resumed connections back to their normal queues, in response to
25 the wake up. The changes are simpler & cleaner. There is a cost to
26 the basic select loop that is avoided by making suspend/resume a
27 startup option. The per-worker pipes can then also be enabled only
28 with that option set. -MH
29
1Fri Nov 29 20:17:03 CET 2013 30Fri Nov 29 20:17:03 CET 2013
2 Eliminating theoretical stack overflow by limiting length 31 Eliminating theoretical stack overflow by limiting length
3 of URIs in authentication headers to 32k (only applicable 32 of URIs in authentication headers to 32k (only applicable