aboutsummaryrefslogtreecommitdiff
path: root/docs/src
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2016-06-21 15:25:43 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2016-07-04 19:10:12 +0200
commit70002c80bf1447fad605b61d9d6e83e9d0c1a6bc (patch)
tree26fab77c8ce1c6d9d3f6454ef8a89c75e6f924e9 /docs/src
parent1d27bbbb8d65b218f5c6cb7f9c4e2f4f043b30ad (diff)
downloadlibuv-70002c80bf1447fad605b61d9d6e83e9d0c1a6bc.tar.gz
libuv-70002c80bf1447fad605b61d9d6e83e9d0c1a6bc.zip
linux: fix potential event loop stall
It was pointed out[0] that libuv could effectively enter an infinite loop (but not a busy loop) under certain conditions when polling for events: 1. When the architecture is 32 bits, and 2. When timeout > 0, i.e., finite, and 3. When timeout > max_safe_timeout (~30 minutes), and 4. When epoll_wait(timeout) returns 0, then 5. timeout was not properly updated on the next call to epoll_wait(). Inspection of the code uncovered a secondary bug where under a similar set of circumstances the timeout could drift when the epoll_wait() system call returned late. [0] https://github.com/libuv/libuv/pull/354#discussion_r67837112 PR-URL: https://github.com/libuv/libuv/pull/922 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'docs/src')
0 files changed, 0 insertions, 0 deletions