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;  } | 
