comparison src/event/ngx_event.h @ 236:c982febb7588 NGINX_0_4_3

nginx 0.4.3 *) Change: now the 499 error could not be redirected using an "error_page" directive. *) Feature: the Solaris 10 event ports support. *) Feature: the ngx_http_browser_module. *) Bugfix: a segmentation fault may occur while redirecting the 400 error to the proxied server using an "proxy_pass" directive. *) Bugfix: a segmentation fault occurred if an unix domain socket was used in an "proxy_pass" directive; bug appeared in 0.3.47. *) Bugfix: SSI did work with memcached and nonbuffered responses. *) Workaround: of the Sun Studio PAUSE hardware capability bug.
author Igor Sysoev <http://sysoev.ru>
date Tue, 26 Sep 2006 00:00:00 +0400
parents 0ad9eeb6ac7f
children f7cd062ee035
comparison
equal deleted inserted replaced
235:f622c719b711 236:c982febb7588
39 39
40 unsigned write:1; 40 unsigned write:1;
41 41
42 unsigned accept:1; 42 unsigned accept:1;
43 43
44 unsigned oneshot:1;
45
46 /* used to detect the stale events in kqueue, rt signals and epoll */ 44 /* used to detect the stale events in kqueue, rt signals and epoll */
47 unsigned instance:1; 45 unsigned instance:1;
48 46
49 /* 47 /*
50 * the event was passed or would be passed to a kernel; 48 * the event was passed or would be passed to a kernel;
54 52
55 unsigned disabled:1; 53 unsigned disabled:1;
56 54
57 /* the ready event; in aio mode 0 means that no operation can be posted */ 55 /* the ready event; in aio mode 0 means that no operation can be posted */
58 unsigned ready:1; 56 unsigned ready:1;
57
58 unsigned oneshot:1;
59 59
60 /* aio operation is complete */ 60 /* aio operation is complete */
61 unsigned complete:1; 61 unsigned complete:1;
62 62
63 unsigned eof:1; 63 unsigned eof:1;
222 */ 222 */
223 #define NGX_USE_LEVEL_EVENT 0x00000001 223 #define NGX_USE_LEVEL_EVENT 0x00000001
224 224
225 /* 225 /*
226 * The event filter is deleted after a notification without an additional 226 * The event filter is deleted after a notification without an additional
227 * syscall: kqueue, epoll, Solaris 10's event ports. 227 * syscall: kqueue, epoll.
228 */ 228 */
229 #define NGX_USE_ONESHOT_EVENT 0x00000002 229 #define NGX_USE_ONESHOT_EVENT 0x00000002
230 230
231 /* 231 /*
232 * The event filter notifies only the changes and an initial level: 232 * The event filter notifies only the changes and an initial level:
284 * The event module handles periodic or absolute timer event by itself: 284 * The event module handles periodic or absolute timer event by itself:
285 * kqueue in FreeBSD 4.4 and NetBSD 2.0, Solaris 10's event ports. 285 * kqueue in FreeBSD 4.4 and NetBSD 2.0, Solaris 10's event ports.
286 */ 286 */
287 #define NGX_USE_TIMER_EVENT 0x00000800 287 #define NGX_USE_TIMER_EVENT 0x00000800
288 288
289 /*
290 * All event filters on file descriptor are deleted after a notification:
291 * Solaris 10's event ports.
292 */
293 #define NGX_USE_EVENTPORT_EVENT 0x00001000
294
289 295
290 296
291 /* 297 /*
292 * The event filter is deleted before the closing file. 298 * The event filter is deleted before the closing file.
293 * Has no meaning for select, poll, epoll. 299 * Has no meaning for select, poll, kqueue, epoll.
294 *
295 * kqueue: kqueue deletes event filters for file that closed
296 * so we need only to delete filters in user-level batch array
297 * /dev/poll: we need to flush POLLREMOVE event before closing file 300 * /dev/poll: we need to flush POLLREMOVE event before closing file
298 */ 301 */
299 302
300 #define NGX_CLOSE_EVENT 1 303 #define NGX_CLOSE_EVENT 1
301 #define NGX_DISABLE_EVENT 2 304 #define NGX_DISABLE_EVENT 2
333 336
334 #undef NGX_DISABLE_EVENT 337 #undef NGX_DISABLE_EVENT
335 #define NGX_DISABLE_EVENT EV_DISABLE 338 #define NGX_DISABLE_EVENT EV_DISABLE
336 339
337 340
338 #elif (NGX_HAVE_DEVPOLL) 341 #elif (NGX_HAVE_DEVPOLL || NGX_HAVE_EVENTPORT)
339 342
340 #define NGX_READ_EVENT POLLIN 343 #define NGX_READ_EVENT POLLIN
341 #define NGX_WRITE_EVENT POLLOUT 344 #define NGX_WRITE_EVENT POLLOUT
342 345
343 #define NGX_LEVEL_EVENT 0 346 #define NGX_LEVEL_EVENT 0
444 extern ngx_atomic_t *ngx_connection_counter; 447 extern ngx_atomic_t *ngx_connection_counter;
445 448
446 extern ngx_atomic_t *ngx_accept_mutex_ptr; 449 extern ngx_atomic_t *ngx_accept_mutex_ptr;
447 extern ngx_shmtx_t ngx_accept_mutex; 450 extern ngx_shmtx_t ngx_accept_mutex;
448 extern ngx_uint_t ngx_use_accept_mutex; 451 extern ngx_uint_t ngx_use_accept_mutex;
452 extern ngx_uint_t ngx_accept_events;
449 extern ngx_uint_t ngx_accept_mutex_held; 453 extern ngx_uint_t ngx_accept_mutex_held;
450 extern ngx_msec_t ngx_accept_mutex_delay; 454 extern ngx_msec_t ngx_accept_mutex_delay;
451 extern ngx_int_t ngx_accept_disabled; 455 extern ngx_int_t ngx_accept_disabled;
452 456
453 457