comparison src/event/modules/ngx_overlapped_module.c @ 1:d220029ac7f3

nginx-0.0.1-2002-08-15-21:20:26 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 15 Aug 2002 17:20:26 +0000
parents 4eff17414a43
children
comparison
equal deleted inserted replaced
0:4eff17414a43 1:d220029ac7f3
1
2
3 event = WSACreateEvent(void);
4 WSAEventSelect(s, event, FD_ACCEPT);
5
1 6
2 int ngx_overlapped_process_events(ngx_log_t *log) 7 int ngx_overlapped_process_events(ngx_log_t *log)
3 { 8 {
4 if (acceptex) 9 if (acceptex)
5 event = SleepEx(timer, 1); 10 n = SleepEx(timer, 1);
6 else 11 else
7 event = WSAWaitForMultipleEvents(n_events, events, 0, timer, 1); 12 n = WSAWaitForMultipleEvents(nevents, events, 0, timer, 1);
8 13
9 if (event == WSA_IO_COMPLETION) 14 if (n == WSA_WAIT_TIMEOUT)
10 look ready array 15 close some event;
16
17 if (n == WSA_IO_COMPLETION)
18 again
19
20 /* try it with AcceptEx() on NT to detect connected sockets */
21 if (!acceptex) {
22 WSAEnumNetworkEvents(
23 sockets[n - WSA_WAIT_EVENT_0],
24 events[n - WSA_WAIT_EVENT_0],
25 net_events);
26
27 if (net_events.lNetworkEvents & FD_ACCEPT) {
28 if (net_events.iErrorCode[FD_ACCEPT_BIT] != 0)
29 accept error
30 again
31
32 ngx_event_accept(); OR post AcceptEx();
33 }
34 }
11 } 35 }
12 36
13 void CALLBACK overlapped_completion_procedure(DWORD error, DWORD nbytes, 37 void CALLBACK overlapped_completion_procedure(DWORD error, DWORD nbytes,
14 LPWSAOVERLAPPED overlapped, DWORD flags) 38 LPWSAOVERLAPPED overlapped, DWORD flags)
15 { 39 {
16 push overlapped; 40 run event handler
17 } 41 }