diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-02-03 11:25:52 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:09:30 -0500 |
commit | 0798d54b4fc28be881e2c4012663b1461bc85ba7 (patch) | |
tree | 532a93a578fd021c827bbb6bf5c65525b77671b7 /source4/lib | |
parent | 6e0a56f73b7f75e45d97a574cf6fd1fc4f4bff9b (diff) | |
download | samba-0798d54b4fc28be881e2c4012663b1461bc85ba7.tar.gz samba-0798d54b4fc28be881e2c4012663b1461bc85ba7.tar.bz2 samba-0798d54b4fc28be881e2c4012663b1461bc85ba7.zip |
r5195: most events don't need the time of the event, so save a gettimeofday() call
and just use timeval_current() when its actually needed
(This used to be commit 236403cc4dc2924ed6a898acae0bb44cc1688dcc)
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/events.c | 12 | ||||
-rw-r--r-- | source4/lib/messaging/messaging.c | 6 |
2 files changed, 7 insertions, 11 deletions
diff --git a/source4/lib/events.c b/source4/lib/events.c index a478fc8a41..4907a60f01 100644 --- a/source4/lib/events.c +++ b/source4/lib/events.c @@ -359,7 +359,6 @@ static int event_loop_epoll(struct event_context *ev, struct timeval *tvalp) struct epoll_event events[maxevents]; uint32_t destruction_count = ev->destruction_count; int timeout = -1; - struct timeval t; if (tvalp) { timeout = (tvalp->tv_usec / 1000) + (tvalp->tv_sec*1000); @@ -367,7 +366,7 @@ static int event_loop_epoll(struct event_context *ev, struct timeval *tvalp) ret = epoll_wait(ev->epoll_fd, events, maxevents, timeout); - if (ret == -1) { + if (ret == -1 && errno != EINTR) { epoll_fallback_to_select(ev, "epoll_wait() failed"); return -1; } @@ -377,8 +376,6 @@ static int event_loop_epoll(struct event_context *ev, struct timeval *tvalp) return 0; } - t = timeval_current(); - for (i=0;i<ret;i++) { struct fd_event *fde = talloc_get_type(events[i].data.ptr, struct fd_event); @@ -391,7 +388,7 @@ static int event_loop_epoll(struct event_context *ev, struct timeval *tvalp) if (events[i].events & EPOLLIN) flags |= EVENT_FD_READ; if (events[i].events & EPOLLOUT) flags |= EVENT_FD_WRITE; if (flags) { - fde->handler(ev, fde, t, flags, fde->private); + fde->handler(ev, fde, flags, fde->private); if (destruction_count != ev->destruction_count) { break; } @@ -451,7 +448,6 @@ static int event_loop_select(struct event_context *ev, struct timeval *tvalp) } if (selrtn > 0) { - struct timeval t = timeval_current(); /* at least one file descriptor is ready - check which ones and call the handler, being careful to allow the handler to remove itself when called */ @@ -460,7 +456,7 @@ static int event_loop_select(struct event_context *ev, struct timeval *tvalp) if (FD_ISSET(fe->fd, &r_fds)) flags |= EVENT_FD_READ; if (FD_ISSET(fe->fd, &w_fds)) flags |= EVENT_FD_WRITE; if (flags) { - fe->handler(ev, fe, t, flags, fe->private); + fe->handler(ev, fe, flags, fe->private); if (destruction_count != ev->destruction_count) { break; } @@ -472,7 +468,7 @@ static int event_loop_select(struct event_context *ev, struct timeval *tvalp) } /* - do a single event loop using the events defined in ev this function + do a single event loop using the events defined in ev */ int event_loop_once(struct event_context *ev) { diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index 53b6f434f0..24205e5151 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -122,7 +122,7 @@ static void messaging_dispatch(struct messaging_context *msg, struct messaging_r handle IO for a single message */ static void messaging_recv_handler(struct event_context *ev, struct fd_event *fde, - struct timeval t, uint16_t flags, void *private) + uint16_t flags, void *private) { struct messaging_rec *rec = talloc_get_type(private, struct messaging_rec); struct messaging_context *msg = rec->msg; @@ -192,7 +192,7 @@ static void messaging_recv_handler(struct event_context *ev, struct fd_event *fd handle a new incoming connection */ static void messaging_listen_handler(struct event_context *ev, struct fd_event *fde, - struct timeval t, uint16_t flags, void *private) + uint16_t flags, void *private) { struct messaging_context *msg = talloc_get_type(private, struct messaging_context); @@ -257,7 +257,7 @@ void messaging_deregister(struct messaging_context *msg, uint32_t msg_type, void handle IO for sending a message */ static void messaging_send_handler(struct event_context *ev, struct fd_event *fde, - struct timeval t, uint16_t flags, void *private) + uint16_t flags, void *private) { struct messaging_rec *rec = talloc_get_type(private, struct messaging_rec); NTSTATUS status; |