diff options
author | 2015-08-04 13:16:48 +0200 | |
---|---|---|
committer | 2015-08-04 13:16:48 +0200 | |
commit | e60c5e38106e85363ea0c6bba242e26f76681883 (patch) | |
tree | 72ce78574bfd578a3d92020f0bef2adfe64b86e2 | |
parent | 32c4e5ee6b5368eb3815ff8ef21719a594d4b37d (diff) |
Use an unsigned pointer compare, as the highest bit may sometimes be set.
This fixes intermittent connection issues on 32-bit Linux. Also related
to issues #2557 and #2600.
-rw-r--r-- | src/core/iomgr/fd_posix.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/iomgr/fd_posix.c b/src/core/iomgr/fd_posix.c index a2df838d4a..91051a178e 100644 --- a/src/core/iomgr/fd_posix.c +++ b/src/core/iomgr/fd_posix.c @@ -376,13 +376,15 @@ gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset, return 0; } /* if there is nobody polling for read, but we need to, then start doing so */ - if (read_mask && !fd->read_watcher && gpr_atm_acq_load(&fd->readst) > READY) { + if (read_mask && !fd->read_watcher && + gpr_atm_acq_load((gpr_uintptr *)&fd->readst) > READY) { fd->read_watcher = watcher; mask |= read_mask; } /* if there is nobody polling for write, but we need to, then start doing so */ - if (write_mask && !fd->write_watcher && gpr_atm_acq_load(&fd->writest) > READY) { + if (write_mask && !fd->write_watcher && + gpr_atm_acq_load((gpr_uintptr *)&fd->writest) > READY) { fd->write_watcher = watcher; mask |= write_mask; } |