Commit 463b49f1 authored by Sergey Lyubka's avatar Sergey Lyubka

Fixed poll() issue with QNX

parent a881aad5
...@@ -5014,7 +5014,11 @@ static void *master_thread(void *thread_func_param) { ...@@ -5014,7 +5014,11 @@ static void *master_thread(void *thread_func_param) {
if (poll(pfd, ctx->num_listening_sockets, 200) > 0) { if (poll(pfd, ctx->num_listening_sockets, 200) > 0) {
for (i = 0; i < ctx->num_listening_sockets; i++) { for (i = 0; i < ctx->num_listening_sockets; i++) {
if (ctx->stop_flag == 0 && pfd[i].revents == POLLIN) { // NOTE(lsm): on QNX, poll() returns POLLRDNORM after the
// successfull poll, and POLLIN is defined as (POLLRDNORM | POLLRDBAND)
// Therefore, we're checking pfd[i].revents & POLLIN, not
// pfd[i].revents == POLLIN.
if (ctx->stop_flag == 0 && (pfd[i].revents & POLLIN)) {
accept_new_connection(&ctx->listening_sockets[i], ctx); accept_new_connection(&ctx->listening_sockets[i], ctx);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment