annotate auto/os/win32 @ 4254:35861ba428d1 stable-1.0

Merging r4195, r4196: AIO related fixes: *) Fix for connection drops with AIO. Connections serving content with AIO to fast clients were dropped with "client timed out" messages after send_timeout from response start. *) Fix for socket leak with "aio sendfile" and "limit_rate". Second aio post happened when timer set by limit_rate expired while we have aio request in flight, resulting in "second aio post" alert and socket leak. The patch adds actual protection from aio calls with r->aio already set to aio sendfile code in ngx_http_copy_filter(). This should fix other cases as well, e.g. when sending buffered to disk upstream replies while still talking to upstream. The ngx_http_writer() is also fixed to handle the above case (though it's mostly optimization now).
author Igor Sysoev <igor@sysoev.ru>
date Tue, 01 Nov 2011 14:13:25 +0000
parents 219aa0b0fd58
children d620f497c50f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 # Copyright (C) Igor Sysoev
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
5 have=NGX_WIN32 . auto/have_headers
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 CORE_INCS="$WIN32_INCS"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 CORE_DEPS="$WIN32_DEPS"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 CORE_SRCS="$WIN32_SRCS $IOCP_SRCS"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 OS_CONFIG="$WIN32_CONFIG"
2731
06d53ecd70c8 *) move advapi32.lib to core libs since it's required for Registry and Event Log
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
11 CORE_LIBS="$CORE_LIBS advapi32.lib ws2_32.lib"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
12 NGX_ICONS="$NGX_WIN32_ICONS"
2813
c00763aa5e1b divide select module into two modules: Unix and Win32 ones
Igor Sysoev <igor@sysoev.ru>
parents: 2731
diff changeset
13 SELECT_SRCS=$WIN32_SELECT_SRCS
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15 EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 EVENT_FOUND=YES
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 if [ $EVENT_SELECT = NO ]; then
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 fi
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22
2814
219aa0b0fd58 IPv6 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2813
diff changeset
23 if [ $NGX_IPV6 = YES ]; then
219aa0b0fd58 IPv6 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2813
diff changeset
24 have=NGX_HAVE_INET6 . auto/have
219aa0b0fd58 IPv6 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2813
diff changeset
25 fi
219aa0b0fd58 IPv6 for Win32
Igor Sysoev <igor@sysoev.ru>
parents: 2813
diff changeset
26
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
27 have=NGX_HAVE_AIO . auto/have
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
28 have=NGX_HAVE_IOCP . auto/have