summaryrefslogtreecommitdiffhomepage
path: root/src/event/modules (follow)
AgeCommit message (Collapse)AuthorFilesLines
2013-07-12Events: support for EPOLLRDHUP (ticket #320).Valentin Bartenev1-5/+13
Since Linux 2.6.17, epoll is able to report about peer half-closed connection using special EPOLLRDHUP flag on a read event.
2013-09-04Win32: MinGW GCC compatibility.Maxim Dounin2-3/+3
Several warnings silenced, notably (ngx_socket_t) -1 is now checked on socket operations instead of -1, as ngx_socket_t is unsigned on win32 and gcc complains on comparison. With this patch, it's now possible to compile nginx using mingw gcc, with options we normally compile on win32.
2013-09-02Added the NGX_EBADF define.Valentin Bartenev1-1/+1
2013-08-20Format specifier fixes in error logging.Sergey Kandaurov1-2/+2
2013-04-16Events: backout eventport changes (r5172) for now.Maxim Dounin1-8/+0
Evenport method needs more work. Changes in r5172, while being correct, introduce various new regressions with current code.
2013-04-12Events: fixed typos in two previous commits.Valentin Bartenev2-2/+2
2013-04-12Events: handle only active events in eventport.Valentin Bartenev1-0/+8
We generate both read and write events if an error event was returned by port_getn() without POLLIN/POLLOUT, but we should not try to handle inactive events, they may even have no handler.
2013-04-12Events: protection from stale events in eventport and devpoll.Valentin Bartenev2-2/+8
Stale write event may happen if read and write events was reported both, and processing of the read event closed descriptor. In practice this might result in "sendfilev() failed (134: ..." or "writev() failed (134: ..." errors when switching to next upstream server. See report here: http://mailman.nginx.org/pipermail/nginx/2013-April/038421.html
2013-01-25Events: fixed null pointer dereference with resolver and poll.Ruslan Ermilov1-2/+2
A POLLERR signalled by poll() without POLLIN/POLLOUT, as seen on Linux, would generate both read and write events, but there's no write event handler for resolver events. A fix is to only call event handler of an active event.
2012-07-24Fixed compilation with -Wmissing-prototypes.Ruslan Ermilov3-5/+52
2012-04-03Fixed spelling in multiline C comments.Ruslan Ermilov3-4/+4
2012-01-18Copyright updated.Maxim Konovalov11-0/+11
2011-11-29Fixed AIO on Linux, broken in r4306.Maxim Dounin1-10/+10
Events from eventfd do not have c->write set, and the stale event check added in r4306 causes null pointer dereference.
2011-11-22Protection from stale write events in epoll.Maxim Dounin1-0/+12
Stale write event may happen if epoll_wait() reported both read and write events, and processing of the read event closed descriptor. Patch by Yichun Zhang (agentzh).
2011-09-20The "worker_aio_requests" directive.Igor Sysoev1-3/+13
The default value is 32 AIO simultaneous requests per worker. Previously they were hardcoded to 1024, and it was too large, since Linux allocated them early on io_setup(), but not on request itself. So with default value of /proc/sys/fs/aio-max-nr equal to 65536 only 64 worker processes could be run simultaneously. 32 AIO requests are enough for modern disks even if server runs only 1 worker.
2011-09-16Fixing Linux AIO initiatialization: AIO operations are disabled if kernelIgor Sysoev1-47/+82
does not support them. Previously worker just exited.
2011-09-16Fixing Linux AIO syscalls return value handling:Igor Sysoev1-10/+11
syscall(2) uses usual libc convention, it returns -1 on error and sets errno. Obsolete _syscall(2) returns negative value of error. Thanks to Hagai Avrahami.
2011-04-23fix building by gcc 4.6 without --with-debugIgor Sysoev1-10/+3
2010-03-25*) introduce ngx_time_sigsafe_update() to update the error log time onlyIgor Sysoev9-15/+15
*) change ngx_time_update() interface
2010-03-13*) use previously cached GMT offset value to update time from a signal handlerIgor Sysoev9-15/+15
*) change ngx_time_update() interface since there are no notification methods those return time
2010-03-12do not update time in the timer signal handler,Igor Sysoev5-5/+5
since localtime_r() is not Async-Signal-Safe function
2009-11-23add NGX_PROCESS_HELPER process statusIgor Sysoev3-3/+3
2009-08-28FreeBSD and Linux AIO supportIgor Sysoev1-0/+217
2009-08-25*) move small declarations in appropriate places and delete the surplusIgor Sysoev4-25/+2
header files *) delete insignificant comments
2009-08-25style fixIgor Sysoev7-32/+6
2009-06-02return NULL instead of NGX_CONF_ERROR on a create conf failureIgor Sysoev5-5/+5
2009-05-14style fixIgor Sysoev1-2/+4
2009-05-06divide select module into two modules: Unix and Win32 onesIgor Sysoev2-137/+404
2009-05-06make code clearerIgor Sysoev1-2/+4
2009-05-06test event type to prevent errorsIgor Sysoev1-0/+10
2009-04-29try to repair the case "select ready != events"Igor Sysoev1-1/+4
2009-04-29ngx_select_repair_fd_sets()Igor Sysoev1-0/+96
2009-04-29delete useless debug logIgor Sysoev1-10/+0
2009-04-29style fixIgor Sysoev1-6/+6
2009-04-29handle Winsock select() WSAEINVALIgor Sysoev1-1/+15
2008-06-23prepare to allow various number of connections in child processesIgor Sysoev2-6/+3
2008-05-22style fixIgor Sysoev1-1/+1
2008-03-13restore building --test-build-rtsig and --test-build-eventport on FreeBSD 6Igor Sysoev2-1/+16
2008-01-28fix building --test-build-rtsig and --test-build-eventport on FreeBSD 7Igor Sysoev2-10/+4
2007-12-10move condition declarations inside blocks where they are usedIgor Sysoev1-3/+2
2007-12-03ngx_udp_recv()Igor Sysoev2-0/+2
2007-09-01NGX_USE_VNODE_EVENT and NGX_FLUSH_EVENTIgor Sysoev1-5/+23
2007-08-31use ev->log, because ev->data may be connection stub onlyIgor Sysoev1-1/+1
2007-08-29add guard codeIgor Sysoev1-13/+59
2007-08-29fix commentIgor Sysoev1-1/+1
2007-08-29disable pair event on POLLREMOVEIgor Sysoev1-0/+6
2007-07-29make 64-bit ngx_int_t on 64-bit platformsIgor Sysoev10-131/+150
2007-07-11fix segfault when event port returns POLLERR without POLLIN or POLLOUTIgor Sysoev1-0/+4
2007-03-21fix building without --with-debug on SolarisIgor Sysoev1-1/+1
2007-03-06decrease log level from alert to debug for POLLERR|POLLHUP|POLLNVALIgor Sysoev2-4/+4