annotate src/event/ngx_event.h @ 9263:388a801e9bb9 default tip

Request body: discarded body now treated as no body. Notably, proxying of such requests now uses no Content-Length instead of "Content-Length: 0", and the $content_length variable is empty (instead of "0"). This might be beneficial from correctness point of view, since requests with discarded body, such as during processing of error pages, do not pretend there is a zero-length body, but instead do not contain body at all. For example, this might be important for PUT requests, where a zero-length body could be incorrectly interpreted as a real request body. This also slightly simplifies the code.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 27 Apr 2024 18:23:52 +0300
parents ce6d9cf0f567
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 3065
diff changeset
4 * Copyright (C) Nginx, Inc.
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
5 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
6
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
7
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_EVENT_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_EVENT_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_config.h>
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
13 #include <ngx_core.h>
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
14
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
194
2357fa41738a nginx-0.0.1-2003-11-21-09:30:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 189
diff changeset
16 #define NGX_INVALID_INDEX 0xd0d0d0d0
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 23
diff changeset
17
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
18
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
19 #if (NGX_HAVE_IOCP)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
21 typedef struct {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
22 WSAOVERLAPPED ovlp;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
23 ngx_event_t *event;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
24 int error;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
25 } ngx_event_ovlp_t;
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
26
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
27 #endif
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
28
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
29
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30 struct ngx_event_s {
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31 void *data;
276
a2d1ccc96111 nginx-0.0.2-2004-03-03-00:14:37 import
Igor Sysoev <igor@sysoev.ru>
parents: 272
diff changeset
32
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
33 unsigned write:1;
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
35 unsigned accept:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
36
6126
adba26ff70b5 Removed the obsolete rtsig module.
Ruslan Ermilov <ru@nginx.com>
parents: 6125
diff changeset
37 /* used to detect the stale events in kqueue and epoll */
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
38 unsigned instance:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
39
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
40 /*
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
41 * the event was passed or would be passed to a kernel;
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
42 * in aio mode - operation was posted.
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
43 */
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
44 unsigned active:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
45
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
46 unsigned disabled:1;
301
744965ec6275 nginx-0.0.3-2004-03-31-19:26:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
47
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
48 /* the ready event; in aio mode 0 means that no operation can be posted */
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
49 unsigned ready:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
50
719
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
51 unsigned oneshot:1;
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
52
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
53 /* aio operation is complete */
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
54 unsigned complete:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
55
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
56 unsigned eof:1;
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
57 unsigned error:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
58
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
59 unsigned timedout:1;
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
60 unsigned timer_set:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
61
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
62 unsigned delayed:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
63
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
64 unsigned deferred_accept:1;
346
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 328
diff changeset
65
5372
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
66 /* the pending eof reported by kqueue, epoll or in aio chain operation */
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
67 unsigned pending_eof:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
68
5821
3f5f0ab59b35 Events: processing of posted events changed from LIFO to FIFO.
Valentin Bartenev <vbart@nginx.com>
parents: 5820
diff changeset
69 unsigned posted:1;
3f5f0ab59b35 Events: processing of posted events changed from LIFO to FIFO.
Valentin Bartenev <vbart@nginx.com>
parents: 5820
diff changeset
70
6145
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
71 unsigned closed:1;
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
72
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
73 /* to test on worker exit */
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
74 unsigned channel:1;
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
75 unsigned resolver:1;
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
76
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
77 unsigned cancelable:1;
0b8f6f75245d Events: ngx_event_t size reduction by grouping bit fields.
Igor Sysoev <igor@sysoev.ru>
parents: 6126
diff changeset
78
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
79 #if (NGX_HAVE_KQUEUE)
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
80 unsigned kq_vnode:1;
206
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
81
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
82 /* the pending errno reported by kqueue */
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
83 int kq_errno;
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
84 #endif
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
85
9aa426375256 nginx-0.0.1-2003-12-05-10:11:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 205
diff changeset
86 /*
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
87 * kqueue only:
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
88 * accept: number of sockets that wait to be accepted
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
89 * read: bytes to read when event is ready
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
90 * or lowat when event is set with NGX_LOWAT_EVENT flag
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
91 * write: available space in buffer when event is ready
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
92 * or lowat when event is set with NGX_LOWAT_EVENT flag
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
93 *
280
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 276
diff changeset
94 * iocp: TODO
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 276
diff changeset
95 *
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
96 * otherwise:
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
97 * accept: 1 if accept many, 0 otherwise
7583
efd71d49bde0 Events: available bytes calculation via ioctl(FIONREAD).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7393
diff changeset
98 * read: bytes to read when event is ready, -1 if not known
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
99 */
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
100
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
101 int available;
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
102
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
103 ngx_event_handler_pt handler;
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
104
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
105
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
106 #if (NGX_HAVE_IOCP)
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
107 ngx_event_ovlp_t ovlp;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
108 #endif
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
109
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
110 ngx_uint_t index;
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
111
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
112 ngx_log_t *log;
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
113
559
c1f965ef9718 nginx-0.3.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
114 ngx_rbtree_node_t timer;
375
744ccb59062d nginx-0.0.7-2004-07-02-19:54:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
115
5821
3f5f0ab59b35 Events: processing of posted events changed from LIFO to FIFO.
Valentin Bartenev <vbart@nginx.com>
parents: 5820
diff changeset
116 /* the posted queue */
3f5f0ab59b35 Events: processing of posted events changed from LIFO to FIFO.
Valentin Bartenev <vbart@nginx.com>
parents: 5820
diff changeset
117 ngx_queue_t queue;
3f5f0ab59b35 Events: processing of posted events changed from LIFO to FIFO.
Valentin Bartenev <vbart@nginx.com>
parents: 5820
diff changeset
118
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
119 #if 0
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
120
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
121 /* the threads support */
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
122
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
123 /*
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
124 * the event thread context, we store it here
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
125 * if $(CC) does not understand __thread declaration
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
126 * and pthread_getspecific() is too costly
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
127 */
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
128
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
129 void *thr_ctx;
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
130
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
131 #if (NGX_EVENT_T_PADDING)
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
132
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
133 /* event should not cross cache line in SMP */
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
134
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
135 uint32_t padding[NGX_EVENT_T_PADDING];
53
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
136 #endif
d1e42f1b8fd4 nginx-0.0.1-2003-01-27-00:08:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 50
diff changeset
137 #endif
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
138 };
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
139
86
3973260705cc nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 79
diff changeset
140
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
141 #if (NGX_HAVE_FILE_AIO)
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
142
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
143 struct ngx_event_aio_s {
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
144 void *data;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
145 ngx_event_handler_pt handler;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
146 ngx_file_t *file;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
147
7089
371da6a7021b Restored ngx_event_aio_t layout for debug logging.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6734
diff changeset
148 ngx_fd_t fd;
371da6a7021b Restored ngx_event_aio_t layout for debug logging.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6734
diff changeset
149
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
150 #if (NGX_HAVE_EVENTFD)
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
151 int64_t res;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
152 #endif
5998
ea58dfd07782 Events: simplified ngx_event_aio_t definition.
Ruslan Ermilov <ru@nginx.com>
parents: 5980
diff changeset
153
ea58dfd07782 Events: simplified ngx_event_aio_t definition.
Ruslan Ermilov <ru@nginx.com>
parents: 5980
diff changeset
154 #if !(NGX_HAVE_EVENTFD) || (NGX_TEST_BUILD_EPOLL)
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
155 ngx_err_t err;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
156 size_t nbytes;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
157 #endif
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
158
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
159 ngx_aiocb_t aiocb;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
160 ngx_event_t event;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
161 };
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
162
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
163 #endif
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
164
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 1905
diff changeset
165
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
166 typedef struct {
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
167 ngx_int_t (*add)(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags);
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
168 ngx_int_t (*del)(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
169
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
170 ngx_int_t (*enable)(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags);
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
171 ngx_int_t (*disable)(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
172
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 354
diff changeset
173 ngx_int_t (*add_conn)(ngx_connection_t *c);
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
174 ngx_int_t (*del_conn)(ngx_connection_t *c, ngx_uint_t flags);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
175
6018
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents: 5998
diff changeset
176 ngx_int_t (*notify)(ngx_event_handler_pt handler);
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents: 5998
diff changeset
177
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
178 ngx_int_t (*process_events)(ngx_cycle_t *cycle, ngx_msec_t timer,
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6465
diff changeset
179 ngx_uint_t flags);
380
5ce6561246a5 nginx-0.0.7-2004-07-07-10:15:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 377
diff changeset
180
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
181 ngx_int_t (*init)(ngx_cycle_t *cycle, ngx_msec_t timer);
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 354
diff changeset
182 void (*done)(ngx_cycle_t *cycle);
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
183 } ngx_event_actions_t;
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
184
3
34a521b1a148 nginx-0.0.1-2002-08-20-18:48:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 1
diff changeset
185
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
186 extern ngx_event_actions_t ngx_event_actions;
6536
f7849bfb6d21 Improved EPOLLRDHUP handling.
Valentin Bartenev <vbart@nginx.com>
parents: 6474
diff changeset
187 #if (NGX_HAVE_EPOLLRDHUP)
f7849bfb6d21 Improved EPOLLRDHUP handling.
Valentin Bartenev <vbart@nginx.com>
parents: 6474
diff changeset
188 extern ngx_uint_t ngx_use_epoll_rdhup;
f7849bfb6d21 Improved EPOLLRDHUP handling.
Valentin Bartenev <vbart@nginx.com>
parents: 6474
diff changeset
189 #endif
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
190
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
191
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
192 /*
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
193 * The event filter requires to read/write the whole data:
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
194 * select, poll, /dev/poll, kqueue, epoll.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
195 */
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
196 #define NGX_USE_LEVEL_EVENT 0x00000001
57
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
197
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
198 /*
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
199 * The event filter is deleted after a notification without an additional
719
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
200 * syscall: kqueue, epoll.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
201 */
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
202 #define NGX_USE_ONESHOT_EVENT 0x00000002
57
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
203
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
204 /*
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
205 * The event filter notifies only the changes and an initial level:
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
206 * kqueue, epoll.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
207 */
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
208 #define NGX_USE_CLEAR_EVENT 0x00000004
57
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
209
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
210 /*
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
211 * The event filter has kqueue features: the eof flag, errno,
242
5d4f49dc8de5 nginx-0.0.1-2004-01-28-18:22:37 import
Igor Sysoev <igor@sysoev.ru>
parents: 218
diff changeset
212 * available data, etc.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
213 */
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
214 #define NGX_USE_KQUEUE_EVENT 0x00000008
60
50186b49f2ad nginx-0.0.1-2003-02-11-10:14:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
215
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
216 /*
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
217 * The event filter supports low water mark: kqueue's NOTE_LOWAT.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
218 * kqueue in FreeBSD 4.1-4.2 has no NOTE_LOWAT so we need a separate flag.
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
219 */
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
220 #define NGX_USE_LOWAT_EVENT 0x00000010
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
221
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
222 /*
6126
adba26ff70b5 Removed the obsolete rtsig module.
Ruslan Ermilov <ru@nginx.com>
parents: 6125
diff changeset
223 * The event filter requires to do i/o operation until EAGAIN: epoll.
328
fb4dfb2ac0fc nginx-0.0.3-2004-04-28-10:14:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 323
diff changeset
224 */
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
225 #define NGX_USE_GREEDY_EVENT 0x00000020
328
fb4dfb2ac0fc nginx-0.0.3-2004-04-28-10:14:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 323
diff changeset
226
fb4dfb2ac0fc nginx-0.0.3-2004-04-28-10:14:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 323
diff changeset
227 /*
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
228 * The event filter is epoll.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
229 */
381
02a511569afb nginx-0.0.7-2004-07-07-19:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 380
diff changeset
230 #define NGX_USE_EPOLL_EVENT 0x00000040
60
50186b49f2ad nginx-0.0.1-2003-02-11-10:14:40 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
231
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
232 /*
6126
adba26ff70b5 Removed the obsolete rtsig module.
Ruslan Ermilov <ru@nginx.com>
parents: 6125
diff changeset
233 * Obsolete.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
234 */
381
02a511569afb nginx-0.0.7-2004-07-07-19:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 380
diff changeset
235 #define NGX_USE_RTSIG_EVENT 0x00000080
57
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
236
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
237 /*
6125
4dc8e7b62216 Removed the obsolete aio module.
Ruslan Ermilov <ru@nginx.com>
parents: 6032
diff changeset
238 * Obsolete.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
239 */
381
02a511569afb nginx-0.0.7-2004-07-07-19:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 380
diff changeset
240 #define NGX_USE_AIO_EVENT 0x00000100
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 23
diff changeset
241
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
242 /*
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
243 * Need to add socket or handle only once: i/o completion port.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
244 */
381
02a511569afb nginx-0.0.7-2004-07-07-19:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 380
diff changeset
245 #define NGX_USE_IOCP_EVENT 0x00000200
67
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 65
diff changeset
246
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
247 /*
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
248 * The event filter has no opaque data and requires file descriptors table:
6126
adba26ff70b5 Removed the obsolete rtsig module.
Ruslan Ermilov <ru@nginx.com>
parents: 6125
diff changeset
249 * poll, /dev/poll.
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
250 */
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
251 #define NGX_USE_FD_EVENT 0x00000400
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
252
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
253 /*
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
254 * The event module handles periodic or absolute timer event by itself:
1442
a53290568fdf update comment
Igor Sysoev <igor@sysoev.ru>
parents: 1441
diff changeset
255 * kqueue in FreeBSD 4.4, NetBSD 2.0, and MacOSX 10.4, Solaris 10's event ports.
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
256 */
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
257 #define NGX_USE_TIMER_EVENT 0x00000800
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
258
719
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
259 /*
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
260 * All event filters on file descriptor are deleted after a notification:
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
261 * Solaris 10's event ports.
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
262 */
1441
bba095216a59 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1354
diff changeset
263 #define NGX_USE_EVENTPORT_EVENT 0x00001000
719
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
264
1451
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
265 /*
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
266 * The event filter support vnode notifications: kqueue.
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
267 */
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
268 #define NGX_USE_VNODE_EVENT 0x00002000
67
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 65
diff changeset
269
64
34d647deb1da nginx-0.0.1-2003-03-04-09:33:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 63
diff changeset
270
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
271 /*
1445
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
272 * The event filter is deleted just before the closing file.
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
273 * Has no meaning for select and poll.
6126
adba26ff70b5 Removed the obsolete rtsig module.
Ruslan Ermilov <ru@nginx.com>
parents: 6125
diff changeset
274 * kqueue, epoll, eventport: allows to avoid explicit delete,
1445
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
275 * because filter automatically is deleted
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
276 * on file close,
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
277 *
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
278 * /dev/poll: we need to flush POLLREMOVE event
907820e5437f update comments
Igor Sysoev <igor@sysoev.ru>
parents: 1442
diff changeset
279 * before closing file.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
280 */
1450
a392517403f5 add comment
Igor Sysoev <igor@sysoev.ru>
parents: 1445
diff changeset
281 #define NGX_CLOSE_EVENT 1
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
282
1450
a392517403f5 add comment
Igor Sysoev <igor@sysoev.ru>
parents: 1445
diff changeset
283 /*
a392517403f5 add comment
Igor Sysoev <igor@sysoev.ru>
parents: 1445
diff changeset
284 * disable temporarily event filter, this may avoid locks
a392517403f5 add comment
Igor Sysoev <igor@sysoev.ru>
parents: 1445
diff changeset
285 * in kernel malloc()/free(): kqueue.
a392517403f5 add comment
Igor Sysoev <igor@sysoev.ru>
parents: 1445
diff changeset
286 */
354
eaf1f651cf86 nginx-0.0.7-2004-06-15-11:55:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
287 #define NGX_DISABLE_EVENT 2
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
288
1451
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
289 /*
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
290 * event must be passed to kernel right now, do not wait until batch processing.
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
291 */
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
292 #define NGX_FLUSH_EVENT 4
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
293
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
294
194
2357fa41738a nginx-0.0.1-2003-11-21-09:30:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 189
diff changeset
295 /* these flags have a meaning only for kqueue */
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
296 #define NGX_LOWAT_EVENT 0
195
8dee38ea9117 nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents: 194
diff changeset
297 #define NGX_VNODE_EVENT 0
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
298
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 23
diff changeset
299
5372
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
300 #if (NGX_HAVE_EPOLL) && !(NGX_HAVE_EPOLLRDHUP)
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
301 #define EPOLLRDHUP 0
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
302 #endif
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
303
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
304
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
305 #if (NGX_HAVE_KQUEUE)
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
306
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
307 #define NGX_READ_EVENT EVFILT_READ
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
308 #define NGX_WRITE_EVENT EVFILT_WRITE
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
309
195
8dee38ea9117 nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents: 194
diff changeset
310 #undef NGX_VNODE_EVENT
8dee38ea9117 nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents: 194
diff changeset
311 #define NGX_VNODE_EVENT EVFILT_VNODE
8dee38ea9117 nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents: 194
diff changeset
312
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
313 /*
1451
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
314 * NGX_CLOSE_EVENT, NGX_LOWAT_EVENT, and NGX_FLUSH_EVENT are the module flags
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
315 * and they must not go into a kernel so we need to choose the value
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
316 * that must not interfere with any existent and future kqueue flags.
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
317 * kqueue has such values - EV_FLAG1, EV_EOF, and EV_ERROR:
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
318 * they are reserved and cleared on a kernel entrance.
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
319 */
69
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
320 #undef NGX_CLOSE_EVENT
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
321 #define NGX_CLOSE_EVENT EV_EOF
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
322
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
323 #undef NGX_LOWAT_EVENT
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
324 #define NGX_LOWAT_EVENT EV_FLAG1
69
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
325
1451
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
326 #undef NGX_FLUSH_EVENT
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
327 #define NGX_FLUSH_EVENT EV_ERROR
ae957ab627e2 NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENT
Igor Sysoev <igor@sysoev.ru>
parents: 1450
diff changeset
328
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 3
diff changeset
329 #define NGX_LEVEL_EVENT 0
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
330 #define NGX_ONESHOT_EVENT EV_ONESHOT
69
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
331 #define NGX_CLEAR_EVENT EV_CLEAR
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 7
diff changeset
332
194
2357fa41738a nginx-0.0.1-2003-11-21-09:30:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 189
diff changeset
333 #undef NGX_DISABLE_EVENT
2357fa41738a nginx-0.0.1-2003-11-21-09:30:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 189
diff changeset
334 #define NGX_DISABLE_EVENT EV_DISABLE
2357fa41738a nginx-0.0.1-2003-11-21-09:30:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 189
diff changeset
335
9
6f58641241bb nginx-0.0.1-2002-09-07-14:14:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 8
diff changeset
336
6465
9fd68d5009e3 Fixed --test-build-*.
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
337 #elif (NGX_HAVE_DEVPOLL && !(NGX_TEST_BUILD_DEVPOLL)) \
9fd68d5009e3 Fixed --test-build-*.
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
338 || (NGX_HAVE_EVENTPORT && !(NGX_TEST_BUILD_EVENTPORT))
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
339
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
340 #define NGX_READ_EVENT POLLIN
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
341 #define NGX_WRITE_EVENT POLLOUT
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
342
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
343 #define NGX_LEVEL_EVENT 0
262
8c5bdde0d9f0 nginx-0.0.2-2004-02-18-18:45:21 import
Igor Sysoev <igor@sysoev.ru>
parents: 261
diff changeset
344 #define NGX_ONESHOT_EVENT 1
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
345
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
346
6465
9fd68d5009e3 Fixed --test-build-*.
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
347 #elif (NGX_HAVE_EPOLL) && !(NGX_TEST_BUILD_EPOLL)
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
348
5372
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5371
diff changeset
349 #define NGX_READ_EVENT (EPOLLIN|EPOLLRDHUP)
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
350 #define NGX_WRITE_EVENT EPOLLOUT
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
351
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
352 #define NGX_LEVEL_EVENT 0
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
353 #define NGX_CLEAR_EVENT EPOLLET
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
354 #define NGX_ONESHOT_EVENT 0x70000000
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
355 #if 0
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
356 #define NGX_ONESHOT_EVENT EPOLLONESHOT
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
357 #endif
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
358
6635
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
359 #if (NGX_HAVE_EPOLLEXCLUSIVE)
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
360 #define NGX_EXCLUSIVE_EVENT EPOLLEXCLUSIVE
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
361 #endif
259
d30f2c39caae nginx-0.0.2-2004-02-12-23:57:10 import
Igor Sysoev <igor@sysoev.ru>
parents: 258
diff changeset
362
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
363 #elif (NGX_HAVE_POLL)
36
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
364
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
365 #define NGX_READ_EVENT POLLIN
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
366 #define NGX_WRITE_EVENT POLLOUT
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
367
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
368 #define NGX_LEVEL_EVENT 0
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
369 #define NGX_ONESHOT_EVENT 1
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 32
diff changeset
370
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
371
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
372 #else /* select */
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
373
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
374 #define NGX_READ_EVENT 0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
375 #define NGX_WRITE_EVENT 1
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
376
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 3
diff changeset
377 #define NGX_LEVEL_EVENT 0
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
378 #define NGX_ONESHOT_EVENT 1
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
379
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
380 #endif /* NGX_HAVE_KQUEUE */
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
381
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
382
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
383 #if (NGX_HAVE_IOCP)
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
384 #define NGX_IOCP_ACCEPT 0
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
385 #define NGX_IOCP_IO 1
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 175
diff changeset
386 #define NGX_IOCP_CONNECT 2
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
387 #endif
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
388
1
d220029ac7f3 nginx-0.0.1-2002-08-15-21:20:26 import
Igor Sysoev <igor@sysoev.ru>
parents: 0
diff changeset
389
6635
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
390 #if (NGX_TEST_BUILD_EPOLL)
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
391 #define NGX_EXCLUSIVE_EVENT 0
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
392 #endif
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
393
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6602
diff changeset
394
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
395 #ifndef NGX_CLEAR_EVENT
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
396 #define NGX_CLEAR_EVENT 0 /* dummy declaration */
50
b288069a8696 nginx-0.0.1-2003-01-23-21:47:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
397 #endif
1
d220029ac7f3 nginx-0.0.1-2002-08-15-21:20:26 import
Igor Sysoev <igor@sysoev.ru>
parents: 0
diff changeset
398
d220029ac7f3 nginx-0.0.1-2002-08-15-21:20:26 import
Igor Sysoev <igor@sysoev.ru>
parents: 0
diff changeset
399
380
5ce6561246a5 nginx-0.0.7-2004-07-07-10:15:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 377
diff changeset
400 #define ngx_process_events ngx_event_actions.process_events
5ce6561246a5 nginx-0.0.7-2004-07-07-10:15:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 377
diff changeset
401 #define ngx_done_events ngx_event_actions.done
5ce6561246a5 nginx-0.0.7-2004-07-07-10:15:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 377
diff changeset
402
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
403 #define ngx_add_event ngx_event_actions.add
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
404 #define ngx_del_event ngx_event_actions.del
97
70d2345a903f nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
405 #define ngx_add_conn ngx_event_actions.add_conn
94
8220378432a8 nginx-0.0.1-2003-05-22-19:23:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
406 #define ngx_del_conn ngx_event_actions.del_conn
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 57
diff changeset
407
6018
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents: 5998
diff changeset
408 #define ngx_notify ngx_event_actions.notify
466bd63b63d1 Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents: 5998
diff changeset
409
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
410 #define ngx_add_timer ngx_event_add_timer
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
411 #define ngx_del_timer ngx_event_del_timer
1
d220029ac7f3 nginx-0.0.1-2002-08-15-21:20:26 import
Igor Sysoev <igor@sysoev.ru>
parents: 0
diff changeset
412
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
413
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
414 extern ngx_os_io_t ngx_io;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
415
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
416 #define ngx_recv ngx_io.recv
139
54307053f185 nginx-0.0.1-2003-10-07-19:30:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
417 #define ngx_recv_chain ngx_io.recv_chain
1689
0b592a68aade ngx_udp_recv()
Igor Sysoev <igor@sysoev.ru>
parents: 1451
diff changeset
418 #define ngx_udp_recv ngx_io.udp_recv
417
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
419 #define ngx_send ngx_io.send
395
f8f0f1834266 nginx-0.0.7-2004-07-16-21:11:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 381
diff changeset
420 #define ngx_send_chain ngx_io.send_chain
6436
8f038068f4bc Stream: UDP proxy.
Roman Arutyunyan <arut@nginx.com>
parents: 6145
diff changeset
421 #define ngx_udp_send ngx_io.udp_send
6692
56fc55e32f23 Stream: filters.
Roman Arutyunyan <arut@nginx.com>
parents: 6635
diff changeset
422 #define ngx_udp_send_chain ngx_io.udp_send_chain
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
423
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
424
96
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 94
diff changeset
425 #define NGX_EVENT_MODULE 0x544E5645 /* "EVNT" */
423
fda5987b188d nginx-0.0.10-2004-09-13-20:18:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 422
diff changeset
426 #define NGX_EVENT_CONF 0x02000000
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
427
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
428
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
429 typedef struct {
323
ba876b26b76d nginx-0.0.3-2004-04-21-22:54:33 import
Igor Sysoev <igor@sysoev.ru>
parents: 309
diff changeset
430 ngx_uint_t connections;
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 354
diff changeset
431 ngx_uint_t use;
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
432
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
433 ngx_flag_t multi_accept;
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
434 ngx_flag_t accept_mutex;
303
00c5660d2707 nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 302
diff changeset
435
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
436 ngx_msec_t accept_mutex_delay;
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
437
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
438 u_char *name;
303
00c5660d2707 nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 302
diff changeset
439
307
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
440 #if (NGX_DEBUG)
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
441 ngx_array_t debug_connection;
ce375c313e96 nginx-0.0.3-2004-04-08-19:58:25 import
Igor Sysoev <igor@sysoev.ru>
parents: 306
diff changeset
442 #endif
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
443 } ngx_event_conf_t;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
444
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
445
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
446 typedef struct {
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
447 ngx_str_t *name;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
448
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 113
diff changeset
449 void *(*create_conf)(ngx_cycle_t *cycle);
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 113
diff changeset
450 char *(*init_conf)(ngx_cycle_t *cycle, void *conf);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
451
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
452 ngx_event_actions_t actions;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
453 } ngx_event_module_t;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
454
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
455
309
2e899477243a nginx-0.0.3-2004-04-09-20:03:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 307
diff changeset
456 extern ngx_atomic_t *ngx_connection_counter;
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
457
302
1526e7686b20 nginx-0.0.3-2004-04-01-10:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 301
diff changeset
458 extern ngx_atomic_t *ngx_accept_mutex_ptr;
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
459 extern ngx_shmtx_t ngx_accept_mutex;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
460 extern ngx_uint_t ngx_use_accept_mutex;
719
f30b1a75fd3b Solaris 10 event ports support
Igor Sysoev <igor@sysoev.ru>
parents: 665
diff changeset
461 extern ngx_uint_t ngx_accept_events;
302
1526e7686b20 nginx-0.0.3-2004-04-01-10:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 301
diff changeset
462 extern ngx_uint_t ngx_accept_mutex_held;
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
463 extern ngx_msec_t ngx_accept_mutex_delay;
323
ba876b26b76d nginx-0.0.3-2004-04-21-22:54:33 import
Igor Sysoev <igor@sysoev.ru>
parents: 309
diff changeset
464 extern ngx_int_t ngx_accept_disabled;
7992
e2d07e4ec636 Events: fixed balancing between workers with EPOLLEXCLUSIVE.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7985
diff changeset
465 extern ngx_uint_t ngx_use_exclusive_accept;
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
466
302
1526e7686b20 nginx-0.0.3-2004-04-01-10:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 301
diff changeset
467
426
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
468 #if (NGX_STAT_STUB)
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
469
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
470 extern ngx_atomic_t *ngx_stat_accepted;
495
fc9909c369b2 nginx-0.1.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
471 extern ngx_atomic_t *ngx_stat_handled;
426
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
472 extern ngx_atomic_t *ngx_stat_requests;
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
473 extern ngx_atomic_t *ngx_stat_active;
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
474 extern ngx_atomic_t *ngx_stat_reading;
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
475 extern ngx_atomic_t *ngx_stat_writing;
5115
a29c574d61fa Status: introduced the "ngx_stat_waiting" counter.
Valentin Bartenev <vbart@nginx.com>
parents: 4613
diff changeset
476 extern ngx_atomic_t *ngx_stat_waiting;
426
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
477
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
478 #endif
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
479
3f88935a02e8 nginx-0.0.10-2004-09-14-23:39:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 423
diff changeset
480
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
481 #define NGX_UPDATE_TIME 1
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
482 #define NGX_POST_EVENTS 2
301
744965ec6275 nginx-0.0.3-2004-03-31-19:26:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
483
271
e16dfb9b9afa nginx-0.0.2-2004-02-26-20:10:01 import
Igor Sysoev <igor@sysoev.ru>
parents: 262
diff changeset
484
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
485 extern sig_atomic_t ngx_event_timer_alarm;
303
00c5660d2707 nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 302
diff changeset
486 extern ngx_uint_t ngx_event_flags;
272
d4e65d74db9f nginx-0.0.2-2004-03-01-00:03:02 import
Igor Sysoev <igor@sysoev.ru>
parents: 271
diff changeset
487 extern ngx_module_t ngx_events_module;
d4e65d74db9f nginx-0.0.2-2004-03-01-00:03:02 import
Igor Sysoev <igor@sysoev.ru>
parents: 271
diff changeset
488 extern ngx_module_t ngx_event_core_module;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
489
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
490
113
d7f606e25b99 nginx-0.0.1-2003-07-04-19:10:33 import
Igor Sysoev <igor@sysoev.ru>
parents: 109
diff changeset
491 #define ngx_event_get_conf(conf_ctx, module) \
7373
874d47ac871a A minor code clean for macro ngx_event_get_conf in ngx_event.h.
chronolaw <chronolaw@gmail.com>
parents: 7286
diff changeset
492 (*(ngx_get_conf(conf_ctx, ngx_events_module))) [module.ctx_index]
90
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
493
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
494
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
495
87
5f6d848dcbef nginx-0.0.1-2003-05-13-20:02:32 import
Igor Sysoev <igor@sysoev.ru>
parents: 86
diff changeset
496 void ngx_event_accept(ngx_event_t *ev);
301
744965ec6275 nginx-0.0.3-2004-03-31-19:26:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
497 ngx_int_t ngx_trylock_accept_mutex(ngx_cycle_t *cycle);
7285
88a624c9b491 Events: moved ngx_recvmsg() to new file src/event/ngx_event_udp.c.
Roman Arutyunyan <arut@nginx.com>
parents: 7089
diff changeset
498 ngx_int_t ngx_enable_accept_events(ngx_cycle_t *cycle);
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
499 u_char *ngx_accept_log_error(ngx_log_t *log, u_char *buf, size_t len);
7285
88a624c9b491 Events: moved ngx_recvmsg() to new file src/event/ngx_event_udp.c.
Roman Arutyunyan <arut@nginx.com>
parents: 7089
diff changeset
500 #if (NGX_DEBUG)
88a624c9b491 Events: moved ngx_recvmsg() to new file src/event/ngx_event_udp.c.
Roman Arutyunyan <arut@nginx.com>
parents: 7089
diff changeset
501 void ngx_debug_accepted_connection(ngx_event_conf_t *ecf, ngx_connection_t *c);
88a624c9b491 Events: moved ngx_recvmsg() to new file src/event/ngx_event_udp.c.
Roman Arutyunyan <arut@nginx.com>
parents: 7089
diff changeset
502 #endif
301
744965ec6275 nginx-0.0.3-2004-03-31-19:26:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 290
diff changeset
503
87
5f6d848dcbef nginx-0.0.1-2003-05-13-20:02:32 import
Igor Sysoev <igor@sysoev.ru>
parents: 86
diff changeset
504
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 559
diff changeset
505 void ngx_process_events_and_timers(ngx_cycle_t *cycle);
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 719
diff changeset
506 ngx_int_t ngx_handle_read_event(ngx_event_t *rev, ngx_uint_t flags);
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
507 ngx_int_t ngx_handle_write_event(ngx_event_t *wev, size_t lowat);
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
508
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 495
diff changeset
509
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
510 #if (NGX_WIN32)
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
511 void ngx_event_acceptex(ngx_event_t *ev);
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
512 ngx_int_t ngx_event_post_acceptex(ngx_listening_t *ls, ngx_uint_t n);
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
513 u_char *ngx_acceptex_log_error(ngx_log_t *log, u_char *buf, size_t len);
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
514 #endif
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
515
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
516
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
517 ngx_int_t ngx_send_lowat(ngx_connection_t *c, size_t lowat);
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
518
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
519
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 209
diff changeset
520 /* used in ngx_log_debugX() */
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 209
diff changeset
521 #define ngx_event_ident(p) ((ngx_connection_t *) (p))->fd
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 209
diff changeset
522
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
523
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 90
diff changeset
524 #include <ngx_event_timer.h>
306
6b91bfbc4123 nginx-0.0.3-2004-04-05-00:32:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 303
diff changeset
525 #include <ngx_event_posted.h>
8001
8206ecdcd837 Core: the ngx_event_udp.h header file.
Vladimir Homutov <vl@nginx.com>
parents: 7992
diff changeset
526 #include <ngx_event_udp.h>
163
fb61ba77beba nginx-0.0.1-2003-10-28-18:45:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
527
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
528 #if (NGX_WIN32)
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
529 #include <ngx_iocp_module.h>
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
530 #endif
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
531
143
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 139
diff changeset
532
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
533 #endif /* _NGX_EVENT_H_INCLUDED_ */