diff options
author | root <root> | 2007-11-04 00:39:24 +0000 |
---|---|---|
committer | root <root> | 2007-11-04 00:39:24 +0000 |
commit | 3676840bf4d472af68b38be10c47665d4bc451cf (patch) | |
tree | 393b74be7a54f41755411a22bc601ef86f9d7fdd | |
parent | 678c8c54d0ce967d8f1db3e575aed61879279975 (diff) |
multiplicity, work around bugs in http.c etc.
-rw-r--r-- | ev.c | 15 | ||||
-rw-r--r-- | ev_epoll.c | 20 |
2 files changed, 19 insertions, 16 deletions
@@ -132,7 +132,7 @@ typedef struct int events; } ANPENDING; -#ifdef EV_MULTIPLICITY +#if EV_MULTIPLICITY struct ev_loop { @@ -544,7 +544,7 @@ ev_method (EV_P) return method; } -static void +inline int loop_init (EV_P_ int methods) { if (!method) @@ -603,16 +603,19 @@ loop_init (EV_P_ int methods) return method; } -#ifdef EV_MULTIPLICITY +#if EV_MULTIPLICITY struct ev_loop * ev_loop_new (int methods) { struct ev_loop *loop = (struct ev_loop *)calloc (1, sizeof (struct ev_loop)); - loop_init (EV_A_ methods); + if (loop_init (EV_A_ methods)) + return loop; - return loop; + ev_loop_delete (loop); + + return 0; } void @@ -627,7 +630,7 @@ ev_loop_delete (EV_P) int ev_init (int methods) { - loop_init (); + return loop_init (methods); } #endif @@ -62,7 +62,7 @@ epoll_postfork_child (EV_P) static void epoll_poll (EV_P_ ev_tstamp timeout) { - int eventcnt = epoll_wait (epoll_fd, events, eventmax, ceil (timeout * 1000.)); + int eventcnt = epoll_wait (epoll_fd, epoll_events, epoll_eventmax, ceil (timeout * 1000.)); int i; if (eventcnt < 0) @@ -71,17 +71,17 @@ epoll_poll (EV_P_ ev_tstamp timeout) for (i = 0; i < eventcnt; ++i) fd_event ( EV_A_ - events [i].data.u64, - (events [i].events & (EPOLLOUT | EPOLLERR | EPOLLHUP) ? EV_WRITE : 0) - | (events [i].events & (EPOLLIN | EPOLLERR | EPOLLHUP) ? EV_READ : 0) + epoll_events [i].data.u64, + (epoll_events [i].events & (EPOLLOUT | EPOLLERR | EPOLLHUP) ? EV_WRITE : 0) + | (epoll_events [i].events & (EPOLLIN | EPOLLERR | EPOLLHUP) ? EV_READ : 0) ); /* if the receive array was full, increase its size */ - if (expect_false (eventcnt == eventmax)) + if (expect_false (eventcnt == epoll_eventmax)) { - free (events); - eventmax = array_roundsize (events, eventmax << 1); - events = malloc (sizeof (struct epoll_event) * eventmax); + free (epoll_events); + epoll_eventmax = array_roundsize (epoll_events, epoll_eventmax << 1); + epoll_events = malloc (sizeof (struct epoll_event) * epoll_eventmax); } } @@ -99,8 +99,8 @@ epoll_init (EV_P_ int flags) method_modify = epoll_modify; method_poll = epoll_poll; - eventmax = 64; /* intiial number of events receivable per poll */ - events = malloc (sizeof (struct epoll_event) * eventmax); + epoll_eventmax = 64; /* intiial number of events receivable per poll */ + epoll_events = malloc (sizeof (struct epoll_event) * epoll_eventmax); return EVMETHOD_EPOLL; } |