diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-05 22:56:57 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-05 22:56:57 +0000 |
commit | c076d6009c4f3e979930b6060e35338172ba34e6 (patch) | |
tree | 0305364d85d809a9acee2088cb3b5df049aead34 | |
parent | de753720296c70f390a8240707448dafa9c06aad (diff) | |
download | ruby-c076d6009c4f3e979930b6060e35338172ba34e6.tar.gz |
thread.c (rb_wait_for_single_fd): no point initializing pollfd.revents
poll(2) and ppoll(2) implementations need to check and write to
.revents on the initial scan, anyways. So any poll/ppoll call
which returns a positive result can be expected to have an
initialized .revents value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | thread.c | 3 |
1 files changed, 0 insertions, 3 deletions
@@ -4043,12 +4043,10 @@ rb_wait_for_single_fd(int fd, int events, struct timeval *timeout) fds[0].fd = fd; fds[0].events = (short)events; do { - fds[0].revents = 0; fds[1].fd = rb_sigwait_fd_get(th); if (fds[1].fd >= 0) { fds[1].events = POLLIN; - fds[1].revents = 0; nfds = 2; ubf = ubf_sigwait; } @@ -4072,7 +4070,6 @@ rb_wait_for_single_fd(int fd, int events, struct timeval *timeout) if (fds[1].fd >= 0) { if (result > 0 && fds[1].revents) { result--; - fds[1].revents = 0; } (void)check_signals_nogvl(th, fds[1].fd); rb_sigwait_fd_put(th, fds[1].fd); |