deprecate the usage of signal_{add,del,set} and name it evsignal_{add,del,set} instead; move the old definitions to compat

svn:r973
This commit is contained in:
Niels Provos 2008-12-23 22:23:37 +00:00
parent 02b2b4d1be
commit d776f8462b
14 changed files with 128 additions and 117 deletions

View File

@ -241,7 +241,7 @@ win32_init(struct event_base *_base)
winop->readset_out->fd_count = winop->writeset_out->fd_count winop->readset_out->fd_count = winop->writeset_out->fd_count
= winop->exset_out->fd_count = 0; = winop->exset_out->fd_count = 0;
evsignal_init(_base); evsig_init(_base);
return (winop); return (winop);
err: err:
@ -337,7 +337,7 @@ win32_dispatch(struct event_base *base, struct timeval *tv)
if (!fd_count) { if (!fd_count) {
/* Windows doesn't like you to call select() with no sockets */ /* Windows doesn't like you to call select() with no sockets */
Sleep(timeval_to_ms(tv)); Sleep(timeval_to_ms(tv));
evsignal_process(base); evsig_process(base);
return (0); return (0);
} }
@ -349,10 +349,10 @@ win32_dispatch(struct event_base *base, struct timeval *tv)
event_debug(("%s: select returned %d", __func__, res)); event_debug(("%s: select returned %d", __func__, res));
if(res <= 0) { if(res <= 0) {
evsignal_process(base); evsig_process(base);
return res; return res;
} else if (base->sig.evsignal_caught) { } else if (base->sig.evsig_caught) {
evsignal_process(base); evsig_process(base);
} }
for (i=0; i<win32op->readset_out->fd_count; ++i) { for (i=0; i<win32op->readset_out->fd_count; ++i) {
@ -379,7 +379,7 @@ win32_dealloc(struct event_base *_base)
{ {
struct win32op *win32op = _base->evbase; struct win32op *win32op = _base->evbase;
evsignal_dealloc(_base); evsig_dealloc(_base);
if (win32op->readset_in) if (win32op->readset_in)
mm_free(win32op->readset_in); mm_free(win32op->readset_in);
if (win32op->writeset_in) if (win32op->writeset_in)

View File

@ -156,7 +156,7 @@ devpoll_init(struct event_base *base)
return (NULL); return (NULL);
} }
evsignal_init(base); evsig_init(base);
return (devpollop); return (devpollop);
} }
@ -188,10 +188,10 @@ devpoll_dispatch(struct event_base *base, struct timeval *tv)
return (-1); return (-1);
} }
evsignal_process(base); evsig_process(base);
return (0); return (0);
} else if (base->sig.evsignal_caught) { } else if (base->sig.evsig_caught) {
evsignal_process(base); evsig_process(base);
} }
event_debug(("%s: devpoll_wait reports %d", __func__, res)); event_debug(("%s: devpoll_wait reports %d", __func__, res));
@ -302,7 +302,7 @@ devpoll_dealloc(struct event_base *base)
{ {
struct devpollop *devpollop = base->evbase; struct devpollop *devpollop = base->evbase;
evsignal_dealloc(base); evsig_dealloc(base);
if (devpollop->events) if (devpollop->events)
mm_free(devpollop->events); mm_free(devpollop->events);
if (devpollop->changes) if (devpollop->changes)

10
epoll.c
View File

@ -135,7 +135,7 @@ epoll_init(struct event_base *base)
} }
epollop->nevents = nfiles; epollop->nevents = nfiles;
evsignal_init(base); evsig_init(base);
return (epollop); return (epollop);
} }
@ -164,10 +164,10 @@ epoll_dispatch(struct event_base *base, struct timeval *tv)
return (-1); return (-1);
} }
evsignal_process(base); evsig_process(base);
return (0); return (0);
} else if (base->sig.evsignal_caught) { } else if (base->sig.evsig_caught) {
evsignal_process(base); evsig_process(base);
} }
event_debug(("%s: epoll_wait reports %d", __func__, res)); event_debug(("%s: epoll_wait reports %d", __func__, res));
@ -262,7 +262,7 @@ epoll_dealloc(struct event_base *base)
{ {
struct epollop *epollop = base->evbase; struct epollop *epollop = base->evbase;
evsignal_dealloc(base); evsig_dealloc(base);
if (epollop->events) if (epollop->events)
mm_free(epollop->events); mm_free(epollop->events);
if (epollop->epfd >= 0) if (epollop->epfd >= 0)

View File

@ -72,7 +72,7 @@ struct event_base {
const struct eventop *evsigsel; const struct eventop *evsigsel;
void *evsigbase; void *evsigbase;
struct evsignal_info sig; struct evsig_info sig;
int event_count; /* counts number of total events */ int event_count; /* counts number of total events */
int event_count_active; /* counts number of active events */ int event_count_active; /* counts number of active events */
@ -141,9 +141,9 @@ struct event_config {
} while (0) } while (0)
#endif /* TAILQ_FOREACH */ #endif /* TAILQ_FOREACH */
int _evsignal_set_handler(struct event_base *base, int evsignal, int _evsig_set_handler(struct event_base *base, int evsignal,
void (*fn)(int)); void (*fn)(int));
int _evsignal_restore_handler(struct event_base *base, int evsignal); int _evsig_restore_handler(struct event_base *base, int evsignal);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -118,7 +118,7 @@ static const struct eventop *eventops[] = {
/* Global state */ /* Global state */
struct event_base *current_base = NULL; struct event_base *current_base = NULL;
extern struct event_base *evsignal_base; extern struct event_base *evsig_base;
static int use_monotonic; static int use_monotonic;
/* Handle signals - This is a deprecated interface */ /* Handle signals - This is a deprecated interface */
@ -711,7 +711,7 @@ event_base_loop(struct event_base *base, int flags)
base->tv_cache.tv_sec = 0; base->tv_cache.tv_sec = 0;
if (base->sig.ev_signal_added) if (base->sig.ev_signal_added)
evsignal_base = base; evsig_base = base;
done = 0; done = 0;
while (!done) { while (!done) {
/* Terminate the loop if we have been asked to */ /* Terminate the loop if we have been asked to */

View File

@ -160,7 +160,7 @@ evport_init(struct event_base *base)
for (i = 0; i < EVENTS_PER_GETN; i++) for (i = 0; i < EVENTS_PER_GETN; i++)
evpd->ed_pending[i] = -1; evpd->ed_pending[i] = -1;
evsignal_init(base); evsig_init(base);
return (evpd); return (evpd);
} }
@ -305,7 +305,7 @@ evport_dispatch(struct event_base *base, struct timeval *tv)
if ((res = port_getn(epdp->ed_port, pevtlist, EVENTS_PER_GETN, if ((res = port_getn(epdp->ed_port, pevtlist, EVENTS_PER_GETN,
(unsigned int *) &nevents, ts_p)) == -1) { (unsigned int *) &nevents, ts_p)) == -1) {
if (errno == EINTR || errno == EAGAIN) { if (errno == EINTR || errno == EAGAIN) {
evsignal_process(base); evsig_process(base);
return (0); return (0);
} else if (errno == ETIME) { } else if (errno == ETIME) {
if (nevents == 0) if (nevents == 0)
@ -314,8 +314,8 @@ evport_dispatch(struct event_base *base, struct timeval *tv)
event_warn("port_getn"); event_warn("port_getn");
return (-1); return (-1);
} }
} else if (base->sig.evsignal_caught) { } else if (base->sig.evsig_caught) {
evsignal_process(base); evsig_process(base);
} }
event_debug(("%s: port_getn reports %d events", __func__, nevents)); event_debug(("%s: port_getn reports %d events", __func__, nevents));
@ -447,7 +447,7 @@ evport_dealloc(struct event_base *base)
{ {
struct evport_data *evpd = base->evbase; struct evport_data *evpd = base->evbase;
evsignal_dealloc(base); evsig_dealloc(base);
close(evpd->ed_port); close(evpd->ed_port);

View File

@ -33,11 +33,11 @@
typedef void (*ev_sighandler_t)(int); typedef void (*ev_sighandler_t)(int);
struct evsignal_info { struct evsig_info {
struct event ev_signal; struct event ev_signal;
evutil_socket_t ev_signal_pair[2]; evutil_socket_t ev_signal_pair[2];
int ev_signal_added; int ev_signal_added;
volatile sig_atomic_t evsignal_caught; volatile sig_atomic_t evsig_caught;
sig_atomic_t evsigcaught[NSIG]; sig_atomic_t evsigcaught[NSIG];
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION
struct sigaction **sh_old; struct sigaction **sh_old;
@ -46,8 +46,8 @@ struct evsignal_info {
#endif #endif
int sh_old_max; int sh_old_max;
}; };
void evsignal_init(struct event_base *); void evsig_init(struct event_base *);
void evsignal_process(struct event_base *); void evsig_process(struct event_base *);
void evsignal_dealloc(struct event_base *); void evsig_dealloc(struct event_base *);
#endif /* _EVSIGNAL_H_ */ #endif /* _EVSIGNAL_H_ */

View File

@ -340,16 +340,16 @@ void evperiodic_assign(struct event *ev, struct event_base *base,
#define evtimer_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv) #define evtimer_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv)
#define evtimer_initialized(ev) _event_initialized((ev), 0) #define evtimer_initialized(ev) _event_initialized((ev), 0)
#define signal_add(ev, tv) event_add(ev, tv) #define evsignal_add(ev, tv) event_add(ev, tv)
#define signal_set(ev, x, cb, arg) \ #define evsignal_set(ev, x, cb, arg) \
event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg) event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg)
#define signal_assign(ev, b, x, cb, arg) \ #define evsignal_assign(ev, b, x, cb, arg) \
event_assign(ev, b, x, EV_SIGNAL|EV_PERSIST, cb, arg) event_assign(ev, b, x, EV_SIGNAL|EV_PERSIST, cb, arg)
#define signal_new(b, x, cb, arg) \ #define evsignal_new(b, x, cb, arg) \
event_new(b, x, EV_SIGNAL|EV_PERSIST, cb, arg) event_new(b, x, EV_SIGNAL|EV_PERSIST, cb, arg)
#define signal_del(ev) event_del(ev) #define evsignal_del(ev) event_del(ev)
#define signal_pending(ev, tv) event_pending(ev, EV_SIGNAL, tv) #define evsignal_pending(ev, tv) event_pending(ev, EV_SIGNAL, tv)
#define signal_initialized(ev) _event_initialized((ev), 0) #define evsignal_initialized(ev) _event_initialized((ev), 0)
/** /**
Prepare an event structure to be added. Prepare an event structure to be added.

View File

@ -201,6 +201,17 @@ int event_priority_init(int);
#define timeout_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv) #define timeout_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv)
#define timeout_initialized(ev) _event_initialized((ev), 0) #define timeout_initialized(ev) _event_initialized((ev), 0)
#define signal_add(ev, tv) event_add(ev, tv)
#define signal_set(ev, x, cb, arg) \
event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg)
#define signal_assign(ev, b, x, cb, arg) \
event_assign(ev, b, x, EV_SIGNAL|EV_PERSIST, cb, arg)
#define signal_new(b, x, cb, arg) \
event_new(b, x, EV_SIGNAL|EV_PERSIST, cb, arg)
#define signal_del(ev) event_del(ev)
#define signal_pending(ev, tv) event_pending(ev, EV_SIGNAL, tv)
#define signal_initialized(ev) _event_initialized((ev), 0)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -394,7 +394,7 @@ kq_sig_add(struct event_base *base, int nsignal, short old, short events)
if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1)
return (-1); return (-1);
if (_evsignal_set_handler(base, nsignal, kq_sighandler) == -1) if (_evsig_set_handler(base, nsignal, kq_sighandler) == -1)
return (-1); return (-1);
return (0); return (0);
@ -421,7 +421,7 @@ kq_sig_del(struct event_base *base, int nsignal, short old, short events)
if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1)
return (-1); return (-1);
if (_evsignal_restore_handler(base, nsignal) == -1) if (_evsig_restore_handler(base, nsignal) == -1)
return (-1); return (-1);
return (0); return (0);

10
poll.c
View File

@ -86,7 +86,7 @@ poll_init(struct event_base *base)
if (!(pollop = mm_calloc(1, sizeof(struct pollop)))) if (!(pollop = mm_calloc(1, sizeof(struct pollop))))
return (NULL); return (NULL);
evsignal_init(base); evsig_init(base);
return (pollop); return (pollop);
} }
@ -133,10 +133,10 @@ poll_dispatch(struct event_base *base, struct timeval *tv)
return (-1); return (-1);
} }
evsignal_process(base); evsig_process(base);
return (0); return (0);
} else if (base->sig.evsignal_caught) { } else if (base->sig.evsig_caught) {
evsignal_process(base); evsig_process(base);
} }
event_debug(("%s: poll reports %d", __func__, res)); event_debug(("%s: poll reports %d", __func__, res));
@ -295,7 +295,7 @@ poll_dealloc(struct event_base *base)
{ {
struct pollop *pop = base->evbase; struct pollop *pop = base->evbase;
evsignal_dealloc(base); evsig_dealloc(base);
if (pop->event_set) if (pop->event_set)
mm_free(pop->event_set); mm_free(pop->event_set);
if (pop->idxplus1_by_fd) if (pop->idxplus1_by_fd)

View File

@ -95,7 +95,7 @@ select_init(struct event_base *base)
select_resize(sop, howmany(32 + 1, NFDBITS)*sizeof(fd_mask)); select_resize(sop, howmany(32 + 1, NFDBITS)*sizeof(fd_mask));
evsignal_init(base); evsig_init(base);
return (sop); return (sop);
} }
@ -134,10 +134,10 @@ select_dispatch(struct event_base *base, struct timeval *tv)
return (-1); return (-1);
} }
evsignal_process(base); evsig_process(base);
return (0); return (0);
} else if (base->sig.evsignal_caught) { } else if (base->sig.evsig_caught) {
evsignal_process(base); evsig_process(base);
} }
event_debug(("%s: select reports %d", __func__, res)); event_debug(("%s: select reports %d", __func__, res));
@ -278,7 +278,7 @@ select_dealloc(struct event_base *base)
{ {
struct selectop *sop = base->evbase; struct selectop *sop = base->evbase;
evsignal_dealloc(base); evsig_dealloc(base);
if (sop->event_readset_in) if (sop->event_readset_in)
mm_free(sop->event_readset_in); mm_free(sop->event_readset_in);
if (sop->event_writeset_in) if (sop->event_writeset_in)

View File

@ -65,26 +65,26 @@
#include "log.h" #include "log.h"
#include "evmap.h" #include "evmap.h"
static int evsignal_add(struct event_base *, int, short, short); static int evsig_add(struct event_base *, int, short, short);
static int evsignal_del(struct event_base *, int, short, short); static int evsig_del(struct event_base *, int, short, short);
static const struct eventop evsigops = { static const struct eventop evsigops = {
"signal", "signal",
NULL, NULL,
evsignal_add, evsig_add,
evsignal_del, evsig_del,
NULL, NULL,
NULL, NULL,
0, 0 0, 0
}; };
struct event_base *evsignal_base = NULL; struct event_base *evsig_base = NULL;
static void evsignal_handler(int sig); static void evsig_handler(int sig);
/* Callback for when the signal handler write a byte to our signaling socket */ /* Callback for when the signal handler write a byte to our signaling socket */
static void static void
evsignal_cb(evutil_socket_t fd, short what, void *arg) evsig_cb(evutil_socket_t fd, short what, void *arg)
{ {
static char signals[100]; static char signals[100];
#ifdef WIN32 #ifdef WIN32
@ -109,7 +109,7 @@ evsignal_cb(evutil_socket_t fd, short what, void *arg)
#endif #endif
void void
evsignal_init(struct event_base *base) evsig_init(struct event_base *base)
{ {
/* /*
* Our signal handler is going to write to one end of the socket * Our signal handler is going to write to one end of the socket
@ -124,13 +124,13 @@ evsignal_init(struct event_base *base)
FD_CLOSEONEXEC(base->sig.ev_signal_pair[1]); FD_CLOSEONEXEC(base->sig.ev_signal_pair[1]);
base->sig.sh_old = NULL; base->sig.sh_old = NULL;
base->sig.sh_old_max = 0; base->sig.sh_old_max = 0;
base->sig.evsignal_caught = 0; base->sig.evsig_caught = 0;
memset(&base->sig.evsigcaught, 0, sizeof(sig_atomic_t)*NSIG); memset(&base->sig.evsigcaught, 0, sizeof(sig_atomic_t)*NSIG);
evutil_make_socket_nonblocking(base->sig.ev_signal_pair[0]); evutil_make_socket_nonblocking(base->sig.ev_signal_pair[0]);
event_assign(&base->sig.ev_signal, base, base->sig.ev_signal_pair[1], event_assign(&base->sig.ev_signal, base, base->sig.ev_signal_pair[1],
EV_READ | EV_PERSIST, evsignal_cb, &base->sig.ev_signal); EV_READ | EV_PERSIST, evsig_cb, &base->sig.ev_signal);
base->sig.ev_signal.ev_flags |= EVLIST_INTERNAL; base->sig.ev_signal.ev_flags |= EVLIST_INTERNAL;
@ -141,7 +141,7 @@ evsignal_init(struct event_base *base)
/* Helper: set the signal handler for evsignal to handler in base, so that /* Helper: set the signal handler for evsignal to handler in base, so that
* we can restore the original handler when we clear the current one. */ * we can restore the original handler when we clear the current one. */
int int
_evsignal_set_handler(struct event_base *base, _evsig_set_handler(struct event_base *base,
int evsignal, void (*handler)(int)) int evsignal, void (*handler)(int))
{ {
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION
@ -149,7 +149,7 @@ _evsignal_set_handler(struct event_base *base,
#else #else
ev_sighandler_t sh; ev_sighandler_t sh;
#endif #endif
struct evsignal_info *sig = &base->sig; struct evsig_info *sig = &base->sig;
void *p; void *p;
/* /*
@ -205,18 +205,18 @@ _evsignal_set_handler(struct event_base *base,
} }
static int static int
evsignal_add(struct event_base *base, int evsignal, short old, short events) evsig_add(struct event_base *base, int evsignal, short old, short events)
{ {
struct evsignal_info *sig = &base->sig; struct evsig_info *sig = &base->sig;
assert(evsignal >= 0 && evsignal < NSIG); assert(evsignal >= 0 && evsignal < NSIG);
event_debug(("%s: %p: changing signal handler", __func__, ev)); event_debug(("%s: %p: changing signal handler", __func__, ev));
if (_evsignal_set_handler(base, evsignal, evsignal_handler) == -1) if (_evsig_set_handler(base, evsignal, evsig_handler) == -1)
return (-1); return (-1);
/* catch signals if they happen quickly */ /* catch signals if they happen quickly */
evsignal_base = base; evsig_base = base;
if (!sig->ev_signal_added) { if (!sig->ev_signal_added) {
if (event_add(&sig->ev_signal, NULL)) if (event_add(&sig->ev_signal, NULL))
@ -228,10 +228,10 @@ evsignal_add(struct event_base *base, int evsignal, short old, short events)
} }
int int
_evsignal_restore_handler(struct event_base *base, int evsignal) _evsig_restore_handler(struct event_base *base, int evsignal)
{ {
int ret = 0; int ret = 0;
struct evsignal_info *sig = &base->sig; struct evsig_info *sig = &base->sig;
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION
struct sigaction *sh; struct sigaction *sh;
#else #else
@ -259,39 +259,39 @@ _evsignal_restore_handler(struct event_base *base, int evsignal)
} }
static int static int
evsignal_del(struct event_base *base, int evsignal, short old, short events) evsig_del(struct event_base *base, int evsignal, short old, short events)
{ {
assert(evsignal >= 0 && evsignal < NSIG); assert(evsignal >= 0 && evsignal < NSIG);
event_debug(("%s: %p: restoring signal handler", __func__, ev)); event_debug(("%s: %p: restoring signal handler", __func__, ev));
return (_evsignal_restore_handler(base, evsignal)); return (_evsig_restore_handler(base, evsignal));
} }
static void static void
evsignal_handler(int sig) evsig_handler(int sig)
{ {
int save_errno = errno; int save_errno = errno;
#ifdef WIN32 #ifdef WIN32
int socket_errno = EVUTIL_SOCKET_ERROR(); int socket_errno = EVUTIL_SOCKET_ERROR();
#endif #endif
if (evsignal_base == NULL) { if (evsig_base == NULL) {
event_warn( event_warn(
"%s: received signal %d, but have no base configured", "%s: received signal %d, but have no base configured",
__func__, sig); __func__, sig);
return; return;
} }
evsignal_base->sig.evsigcaught[sig]++; evsig_base->sig.evsigcaught[sig]++;
evsignal_base->sig.evsignal_caught = 1; evsig_base->sig.evsig_caught = 1;
#ifndef HAVE_SIGACTION #ifndef HAVE_SIGACTION
signal(sig, evsignal_handler); signal(sig, evsig_handler);
#endif #endif
/* Wake up our notification mechanism */ /* Wake up our notification mechanism */
send(evsignal_base->sig.ev_signal_pair[0], "a", 1, 0); send(evsig_base->sig.ev_signal_pair[0], "a", 1, 0);
errno = save_errno; errno = save_errno;
#ifdef WIN32 #ifdef WIN32
EVUTIL_SET_SOCKET_ERROR(socket_errno); EVUTIL_SET_SOCKET_ERROR(socket_errno);
@ -299,13 +299,13 @@ evsignal_handler(int sig)
} }
void void
evsignal_process(struct event_base *base) evsig_process(struct event_base *base)
{ {
struct evsignal_info *sig = &base->sig; struct evsig_info *sig = &base->sig;
sig_atomic_t ncalls; sig_atomic_t ncalls;
int i; int i;
base->sig.evsignal_caught = 0; base->sig.evsig_caught = 0;
for (i = 1; i < NSIG; ++i) { for (i = 1; i < NSIG; ++i) {
ncalls = sig->evsigcaught[i]; ncalls = sig->evsigcaught[i];
if (ncalls == 0) if (ncalls == 0)
@ -317,7 +317,7 @@ evsignal_process(struct event_base *base)
} }
void void
evsignal_dealloc(struct event_base *base) evsig_dealloc(struct event_base *base)
{ {
int i = 0; int i = 0;
if (base->sig.ev_signal_added) { if (base->sig.ev_signal_added) {
@ -326,7 +326,7 @@ evsignal_dealloc(struct event_base *base)
} }
for (i = 0; i < NSIG; ++i) { for (i = 0; i < NSIG; ++i) {
if (i < base->sig.sh_old_max && base->sig.sh_old[i] != NULL) if (i < base->sig.sh_old_max && base->sig.sh_old[i] != NULL)
_evsignal_restore_handler(base, i); _evsig_restore_handler(base, i);
} }
EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[0]); EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[0]);
@ -335,6 +335,6 @@ evsignal_dealloc(struct event_base *base)
base->sig.ev_signal_pair[1] = -1; base->sig.ev_signal_pair[1] = -1;
base->sig.sh_old_max = 0; base->sig.sh_old_max = 0;
/* per index frees are handled in evsignal_del() */ /* per index frees are handled in evsig_del() */
mm_free(base->sig.sh_old); mm_free(base->sig.sh_old);
} }

View File

@ -540,8 +540,8 @@ test_fork(void)
if (event_add(&ev, NULL) == -1) if (event_add(&ev, NULL) == -1)
exit(1); exit(1);
signal_set(&sig_ev, SIGCHLD, child_signal_cb, &got_sigchld); evsignal_set(&sig_ev, SIGCHLD, child_signal_cb, &got_sigchld);
signal_add(&sig_ev, NULL); evsignal_add(&sig_ev, NULL);
if ((pid = fork()) == 0) { if ((pid = fork()) == 0) {
/* in the child */ /* in the child */
@ -550,7 +550,7 @@ test_fork(void)
exit(1); exit(1);
} }
signal_del(&sig_ev); evsignal_del(&sig_ev);
called = 0; called = 0;
@ -590,7 +590,7 @@ test_fork(void)
exit(1); exit(1);
} }
signal_del(&sig_ev); evsignal_del(&sig_ev);
cleanup_test(); cleanup_test();
} }
@ -606,7 +606,7 @@ signal_cb(int fd, short event, void *arg)
{ {
struct event *ev = arg; struct event *ev = arg;
signal_del(ev); evsignal_del(ev);
test_ok = 1; test_ok = 1;
} }
@ -617,11 +617,11 @@ test_simplesignal(void)
struct itimerval itv; struct itimerval itv;
setup_test("Simple signal: "); setup_test("Simple signal: ");
signal_set(&ev, SIGALRM, signal_cb, &ev); evsignal_set(&ev, SIGALRM, signal_cb, &ev);
signal_add(&ev, NULL); evsignal_add(&ev, NULL);
/* find bugs in which operations are re-ordered */ /* find bugs in which operations are re-ordered */
signal_del(&ev); evsignal_del(&ev);
signal_add(&ev, NULL); evsignal_add(&ev, NULL);
memset(&itv, 0, sizeof(itv)); memset(&itv, 0, sizeof(itv));
itv.it_value.tv_sec = 1; itv.it_value.tv_sec = 1;
@ -630,7 +630,7 @@ test_simplesignal(void)
event_dispatch(); event_dispatch();
skip_simplesignal: skip_simplesignal:
if (signal_del(&ev) == -1) if (evsignal_del(&ev) == -1)
test_ok = 0; test_ok = 0;
cleanup_test(); cleanup_test();
@ -644,11 +644,11 @@ test_multiplesignal(void)
setup_test("Multiple signal: "); setup_test("Multiple signal: ");
signal_set(&ev_one, SIGALRM, signal_cb, &ev_one); evsignal_set(&ev_one, SIGALRM, signal_cb, &ev_one);
signal_add(&ev_one, NULL); evsignal_add(&ev_one, NULL);
signal_set(&ev_two, SIGALRM, signal_cb, &ev_two); evsignal_set(&ev_two, SIGALRM, signal_cb, &ev_two);
signal_add(&ev_two, NULL); evsignal_add(&ev_two, NULL);
memset(&itv, 0, sizeof(itv)); memset(&itv, 0, sizeof(itv));
itv.it_value.tv_sec = 1; itv.it_value.tv_sec = 1;
@ -658,9 +658,9 @@ test_multiplesignal(void)
event_dispatch(); event_dispatch();
skip_simplesignal: skip_simplesignal:
if (signal_del(&ev_one) == -1) if (evsignal_del(&ev_one) == -1)
test_ok = 0; test_ok = 0;
if (signal_del(&ev_two) == -1) if (evsignal_del(&ev_two) == -1)
test_ok = 0; test_ok = 0;
cleanup_test(); cleanup_test();
@ -673,24 +673,24 @@ test_immediatesignal(void)
test_ok = 0; test_ok = 0;
printf("Immediate signal: "); printf("Immediate signal: ");
signal_set(&ev, SIGUSR1, signal_cb, &ev); evsignal_set(&ev, SIGUSR1, signal_cb, &ev);
signal_add(&ev, NULL); evsignal_add(&ev, NULL);
raise(SIGUSR1); raise(SIGUSR1);
event_loop(EVLOOP_NONBLOCK); event_loop(EVLOOP_NONBLOCK);
signal_del(&ev); evsignal_del(&ev);
cleanup_test(); cleanup_test();
} }
static void static void
test_signal_dealloc(void) test_signal_dealloc(void)
{ {
/* make sure that signal_event is event_del'ed and pipe closed */ /* make sure that evsignal_event is event_del'ed and pipe closed */
struct event ev; struct event ev;
struct event_base *base = event_init(); struct event_base *base = event_init();
printf("Signal dealloc: "); printf("Signal dealloc: ");
signal_set(&ev, SIGUSR1, signal_cb, &ev); evsignal_set(&ev, SIGUSR1, signal_cb, &ev);
signal_add(&ev, NULL); evsignal_add(&ev, NULL);
signal_del(&ev); evsignal_del(&ev);
event_base_free(base); event_base_free(base);
/* If we got here without asserting, we're fine. */ /* If we got here without asserting, we're fine. */
test_ok = 1; test_ok = 1;
@ -736,8 +736,8 @@ test_signal_switchbase(void)
base1 = event_init(); base1 = event_init();
base2 = event_init(); base2 = event_init();
is_kqueue = !strcmp(event_get_method(),"kqueue"); is_kqueue = !strcmp(event_get_method(),"kqueue");
signal_set(&ev1, SIGUSR1, signal_cb, &ev1); evsignal_set(&ev1, SIGUSR1, signal_cb, &ev1);
signal_set(&ev2, SIGUSR1, signal_cb, &ev2); evsignal_set(&ev2, SIGUSR1, signal_cb, &ev2);
if (event_base_set(base1, &ev1) || if (event_base_set(base1, &ev1) ||
event_base_set(base2, &ev2) || event_base_set(base2, &ev2) ||
event_add(&ev1, NULL) || event_add(&ev1, NULL) ||
@ -783,17 +783,17 @@ test_signal_assert(void)
test_ok = 0; test_ok = 0;
printf("Signal handler assert: "); printf("Signal handler assert: ");
/* use SIGCONT so we don't kill ourselves when we signal to nowhere */ /* use SIGCONT so we don't kill ourselves when we signal to nowhere */
signal_set(&ev, SIGCONT, signal_cb, &ev); evsignal_set(&ev, SIGCONT, signal_cb, &ev);
signal_add(&ev, NULL); evsignal_add(&ev, NULL);
/* /*
* if signal_del() fails to reset the handler, it's current handler * if evsignal_del() fails to reset the handler, it's current handler
* will still point to evsignal_handler(). * will still point to evsig_handler().
*/ */
signal_del(&ev); evsignal_del(&ev);
raise(SIGCONT); raise(SIGCONT);
/* only way to verify we were in evsignal_handler() */ /* only way to verify we were in evsig_handler() */
if (base->sig.evsignal_caught) if (base->sig.evsig_caught)
test_ok = 0; test_ok = 0;
else else
test_ok = 1; test_ok = 1;
@ -827,9 +827,9 @@ test_signal_restore(void)
if (signal(SIGUSR1, signal_cb_sa) == SIG_ERR) if (signal(SIGUSR1, signal_cb_sa) == SIG_ERR)
goto out; goto out;
#endif #endif
signal_set(&ev, SIGUSR1, signal_cb, &ev); evsignal_set(&ev, SIGUSR1, signal_cb, &ev);
signal_add(&ev, NULL); evsignal_add(&ev, NULL);
signal_del(&ev); evsignal_del(&ev);
raise(SIGUSR1); raise(SIGUSR1);
/* 1 == signal_cb, 2 == signal_cb_sa, we want our previous handler */ /* 1 == signal_cb, 2 == signal_cb_sa, we want our previous handler */