Mercurial > hg > nginx-quic
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 } |