diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-20 07:27:28 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-20 07:27:28 +0000 |
commit | 8d9a9aab67d6d517995532737a37379c20dc7f76 (patch) | |
tree | 575616799a958a610d9a8de61fa0d901c1c7f654 /thread_pthread.c | |
parent | 259173ccc00e0ef754e33bc134de1a0731a6b51e (diff) |
thread_pthread.c (rb_reserved_fd_p): false-positive on negative FD
Negative-numbered FDs are never valid FDs on POSIX-like
platforms, and we initialize our self-pipes/eventfd values
to "-1", so stop treating -1 as a reserved FD if our system
is too low on resources to allocate FDs at startup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread_pthread.c')
-rw-r--r-- | thread_pthread.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/thread_pthread.c b/thread_pthread.c index 1f2ac00b67..c87e952750 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -1842,6 +1842,10 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr) int rb_reserved_fd_p(int fd) { + /* no false-positive if out-of-FD at startup */ + if (fd < 0) + return 0; + #if UBF_TIMER == UBF_TIMER_PTHREAD if (fd == timer_pthread.low[0] || fd == timer_pthread.low[1]) goto check_pid; |