From 08f0ee3c6c197a7f4dc506cdc8e700a6536ee616 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 19 Jul 2009 04:11:27 +0000 Subject: *** empty log message *** --- Changes | 2 ++ ev_epoll.c | 9 +++++++-- ev_kqueue.c | 2 +- ev_poll.c | 2 +- ev_port.c | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Changes b/Changes index e667d40..5a2ecbd 100644 --- a/Changes +++ b/Changes @@ -12,6 +12,8 @@ TODO: nsig - take advantage of signalfd on GNU/Linux systems. - document that the signal mask might be in an unspecified state when using libev's signal handling. + - take advantage of some GNU/Linux calls to set cloexec/nonblock + on fd creation, to avoid race conditions. 3.7 Fri Jul 17 16:36:32 CEST 2009 - ev_unloop and ev_loop wrongly used a global variable to exit loops, diff --git a/ev_epoll.c b/ev_epoll.c index 40c320a..c4f1679 100644 --- a/ev_epoll.c +++ b/ev_epoll.c @@ -1,7 +1,7 @@ /* * libev epoll fd activity backend * - * Copyright (c) 2007,2008 Marc Alexander Lehmann + * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann * All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- @@ -181,7 +181,12 @@ epoll_poll (EV_P_ ev_tstamp timeout) int inline_size epoll_init (EV_P_ int flags) { - backend_fd = epoll_create (256); +#ifdef EPOLL_CLOEXEC + backend_fd = epoll_create1 (EPOLL_CLOEXEC); + + if (backend_fd <= 0) +#endif + backend_fd = epoll_create (256); if (backend_fd < 0) return 0; diff --git a/ev_kqueue.c b/ev_kqueue.c index c5f4eb7..0fe340b 100644 --- a/ev_kqueue.c +++ b/ev_kqueue.c @@ -1,7 +1,7 @@ /* * libev kqueue backend * - * Copyright (c) 2007,2008 Marc Alexander Lehmann + * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann * All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- diff --git a/ev_poll.c b/ev_poll.c index c33ea02..178e458 100644 --- a/ev_poll.c +++ b/ev_poll.c @@ -1,7 +1,7 @@ /* * libev poll fd activity backend * - * Copyright (c) 2007,2008 Marc Alexander Lehmann + * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann * All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- diff --git a/ev_port.c b/ev_port.c index 16fe86e..c000898 100644 --- a/ev_port.c +++ b/ev_port.c @@ -1,7 +1,7 @@ /* * libev solaris event port backend * - * Copyright (c) 2007,2008 Marc Alexander Lehmann + * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann * All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- -- cgit v1.2.3