comparison src/event/ngx_event.h @ 5372:36b58ddb566d

Events: support for EPOLLRDHUP (ticket #320). Since Linux 2.6.17, epoll is able to report about peer half-closed connection using special EPOLLRDHUP flag on a read event.
author Valentin Bartenev <vbart@nginx.com>
date Fri, 12 Jul 2013 14:51:07 +0400
parents b95e70ae6bcd
children 3377f9459e99
comparison
equal deleted inserted replaced
5371:b95e70ae6bcd 5372:36b58ddb566d
69 69
70 unsigned delayed:1; 70 unsigned delayed:1;
71 71
72 unsigned deferred_accept:1; 72 unsigned deferred_accept:1;
73 73
74 /* the pending eof reported by kqueue or in aio chain operation */ 74 /* the pending eof reported by kqueue, epoll or in aio chain operation */
75 unsigned pending_eof:1; 75 unsigned pending_eof:1;
76 76
77 #if !(NGX_THREADS) 77 #if !(NGX_THREADS)
78 unsigned posted_ready:1; 78 unsigned posted_ready:1;
79 #endif 79 #endif
347 /* these flags have a meaning only for kqueue */ 347 /* these flags have a meaning only for kqueue */
348 #define NGX_LOWAT_EVENT 0 348 #define NGX_LOWAT_EVENT 0
349 #define NGX_VNODE_EVENT 0 349 #define NGX_VNODE_EVENT 0
350 350
351 351
352 #if (NGX_HAVE_EPOLL) && !(NGX_HAVE_EPOLLRDHUP)
353 #define EPOLLRDHUP 0
354 #endif
355
356
352 #if (NGX_HAVE_KQUEUE) 357 #if (NGX_HAVE_KQUEUE)
353 358
354 #define NGX_READ_EVENT EVFILT_READ 359 #define NGX_READ_EVENT EVFILT_READ
355 #define NGX_WRITE_EVENT EVFILT_WRITE 360 #define NGX_WRITE_EVENT EVFILT_WRITE
356 361
390 #define NGX_ONESHOT_EVENT 1 395 #define NGX_ONESHOT_EVENT 1
391 396
392 397
393 #elif (NGX_HAVE_EPOLL) 398 #elif (NGX_HAVE_EPOLL)
394 399
395 #define NGX_READ_EVENT EPOLLIN 400 #define NGX_READ_EVENT (EPOLLIN|EPOLLRDHUP)
396 #define NGX_WRITE_EVENT EPOLLOUT 401 #define NGX_WRITE_EVENT EPOLLOUT
397 402
398 #define NGX_LEVEL_EVENT 0 403 #define NGX_LEVEL_EVENT 0
399 #define NGX_CLEAR_EVENT EPOLLET 404 #define NGX_CLEAR_EVENT EPOLLET
400 #define NGX_ONESHOT_EVENT 0x70000000 405 #define NGX_ONESHOT_EVENT 0x70000000