comparison src/event/ngx_event.h @ 79:eacfdd1c31b9

nginx-0.0.1-2003-04-22-19:02:58 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 22 Apr 2003 15:02:58 +0000
parents 57c2e18d3572
children 3973260705cc
comparison
equal deleted inserted replaced
78:9f81437e0ad3 79:eacfdd1c31b9
144 int (*write)(ngx_event_t *ev, char *buf, size_t size); 144 int (*write)(ngx_event_t *ev, char *buf, size_t size);
145 */ 145 */
146 } ngx_event_actions_t; 146 } ngx_event_actions_t;
147 147
148 148
149 /* Event filter requires to read/write the whole data - 149 /* The event filter requires to read/write the whole data -
150 select, poll, /dev/poll, kqueue. */ 150 select, poll, /dev/poll, kqueue. */
151 #define NGX_HAVE_LEVEL_EVENT 1 151 #define NGX_HAVE_LEVEL_EVENT 1
152 152
153 /* Event filter is deleted after notification - select, poll, kqueue. 153 /* The event filter is deleted after a notification without an additional
154 Using /dev/poll it can be implemented with additional syscall */ 154 syscall - select, poll, kqueue. */
155 #define NGX_HAVE_ONESHOT_EVENT 2 155 #define NGX_HAVE_ONESHOT_EVENT 2
156 156
157 /* Event filter notifies only changes and initial level - kqueue */ 157 /* The event filter notifies only the changes and an initial level - kqueue */
158 #define NGX_HAVE_CLEAR_EVENT 4 158 #define NGX_HAVE_CLEAR_EVENT 4
159 159
160 /* Event filter has kqueue features - eof flag, errno, available data, etc */ 160 /* The event filter has kqueue features - the eof flag, errno,
161 available data, etc */
161 #define NGX_HAVE_KQUEUE_EVENT 8 162 #define NGX_HAVE_KQUEUE_EVENT 8
162 163
163 /* Event filter supports low water mark - kqueue's NOTE_LOWAT, 164 /* The event filter supports low water mark - kqueue's NOTE_LOWAT.
164 early kqueue implementations have no NOTE_LOWAT so we need a separate flag */ 165 Early kqueue implementations have no NOTE_LOWAT so we need a separate flag */
165 #define NGX_HAVE_LOWAT_EVENT 0x00000010 166 #define NGX_HAVE_LOWAT_EVENT 0x00000010
166 167
167 /* Event filter notifies only changes (edges) but not initial level - epoll */ 168 /* The event filter notifies only the changes (the edges)
169 but not an initial level - epoll */
168 #define NGX_HAVE_EDGE_EVENT 0x00000020 170 #define NGX_HAVE_EDGE_EVENT 0x00000020
169 171
170 /* No need to add or delete event filters - rt signals */ 172 /* No need to add or delete the event filters - rt signals */
171 #define NGX_HAVE_SIGIO_EVENT 0x00000040 173 #define NGX_HAVE_SIGIO_EVENT 0x00000040
172 174
173 /* No need to add or delete event filters - overlapped, aio_read, aioread */ 175 /* No need to add or delete the event filters - overlapped, aio_read, aioread */
174 #define NGX_HAVE_AIO_EVENT 0x00000080 176 #define NGX_HAVE_AIO_EVENT 0x00000080
175 177
176 /* Need to add socket or handle only once - i/o completion port. 178 /* Need to add socket or handle only once - i/o completion port.
177 It also requires HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT to be set */ 179 It also requires HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT to be set */
178 #define NGX_HAVE_IOCP_EVENT 0x00000100 180 #define NGX_HAVE_IOCP_EVENT 0x00000100
282 extern ngx_event_type_e ngx_event_type; 284 extern ngx_event_type_e ngx_event_type;
283 extern int ngx_event_flags; 285 extern int ngx_event_flags;
284 #endif 286 #endif
285 287
286 288
289 #if !(HAVE_EPOLL)
290 #define ngx_edge_add_event(ev) NGX_ERROR
291 #endif
292
293
287 ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size); 294 ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size);
288 int ngx_event_close_connection(ngx_event_t *ev); 295 int ngx_event_close_connection(ngx_event_t *ev);
289 296
290 297
291 void ngx_pre_thread(ngx_array_t *ls, ngx_pool_t *pool, ngx_log_t *log); 298 void ngx_pre_thread(ngx_array_t *ls, ngx_pool_t *pool, ngx_log_t *log);