diff options
author | Andrew Cooper <andrew.cooper3@citrix.com> | 2014-11-26 15:09:40 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2014-11-28 11:09:24 +0000 |
commit | e01898f17ca667c2630c8b7dfe43490f48331e53 (patch) | |
tree | 170b6698f491a910d65bda96b8a465bcd4408560 | |
parent | d27ccd4fcbc2ed803fd10f03dabad4ae8f5c8ae9 (diff) |
tools/oxenstored: Fix | vs & error in fd event handling
This makes fields 0 and 1 true more often than they should be, resulting
problems when handling events.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Dave Scott <Dave.Scott@eu.citrix.com>
CC: Zheng Li <zheng.li3@citrix.com>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Zheng Li <dev@zheng.li>
Reviewed-by: David Scott <dave.scott@citrix.com>
-rw-r--r-- | tools/ocaml/xenstored/select_stubs.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/ocaml/xenstored/select_stubs.c b/tools/ocaml/xenstored/select_stubs.c index 4a8edb5548..af72b84fa2 100644 --- a/tools/ocaml/xenstored/select_stubs.c +++ b/tools/ocaml/xenstored/select_stubs.c @@ -56,8 +56,8 @@ CAMLprim value stub_select_on_poll(value fd_events, value timeo) { events = Field(Field(fd_events, i), 1); if (c_fds[i].revents & POLLNVAL) unix_error(EBADF, "select", Nothing); - Field(events, 0) = Val_bool(c_fds[i].events | POLLIN && c_fds[i].revents & (POLLIN |POLLHUP|POLLERR)); - Field(events, 1) = Val_bool(c_fds[i].events | POLLOUT && c_fds[i].revents & (POLLOUT|POLLHUP|POLLERR)); + Field(events, 0) = Val_bool(c_fds[i].events & POLLIN && c_fds[i].revents & (POLLIN |POLLHUP|POLLERR)); + Field(events, 1) = Val_bool(c_fds[i].events & POLLOUT && c_fds[i].revents & (POLLOUT|POLLHUP|POLLERR)); Field(events, 2) = Val_bool(c_fds[i].revents & POLLPRI); } |