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