diff options
author | Stefan Metzmacher <metze@samba.org> | 2013-02-15 11:24:59 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2013-03-01 11:59:20 -0800 |
commit | f86df3e364f55be5f320463e3c1b89ee3a49115e (patch) | |
tree | 4d99837b8a253a72bdf8cb6004184cf6808917ff /lib/tevent/tevent_poll.c | |
parent | 883d20a9bf7444e6338e13d6efbcbc257e1d78b7 (diff) | |
download | samba-f86df3e364f55be5f320463e3c1b89ee3a49115e.tar.gz samba-f86df3e364f55be5f320463e3c1b89ee3a49115e.tar.bz2 samba-f86df3e364f55be5f320463e3c1b89ee3a49115e.zip |
tevent: remember the errno from select(), poll() and epoll_wait()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'lib/tevent/tevent_poll.c')
-rw-r--r-- | lib/tevent/tevent_poll.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/tevent/tevent_poll.c b/lib/tevent/tevent_poll.c index 89b3bbc0b3..81a7176f8e 100644 --- a/lib/tevent/tevent_poll.c +++ b/lib/tevent/tevent_poll.c @@ -444,6 +444,7 @@ static int poll_event_loop_poll(struct tevent_context *ev, int timeout = -1; unsigned first_fd; unsigned i; + int poll_errno; if (ev->signal_events && tevent_common_check_signal(ev)) { return 0; @@ -462,9 +463,10 @@ static int poll_event_loop_poll(struct tevent_context *ev, tevent_trace_point_callback(poll_ev->ev, TEVENT_TRACE_BEFORE_WAIT); pollrtn = poll(poll_ev->fds, poll_ev->num_fds, timeout); + poll_errno = errno; tevent_trace_point_callback(poll_ev->ev, TEVENT_TRACE_AFTER_WAIT); - if (pollrtn == -1 && errno == EINTR && ev->signal_events) { + if (pollrtn == -1 && poll_errno == EINTR && ev->signal_events) { tevent_common_check_signal(ev); return 0; } |