From f242e17f9b011e1e78cf64eabf1d39d67a7ca274 Mon Sep 17 00:00:00 2001 From: ngoto Date: Thu, 16 Jul 2015 13:06:13 +0000 Subject: * process.c (redirect_dup2): when the new FD of dup2() coflicts with one of the timer thread FDs, the internal FD is diverted. [Bug #11336] [ruby-core:69886] [Bug #11350] [ruby-core:69961] * process.c (dup2_with_divert): new function for the above purpose. * thread_pthread.c (rb_divert_reserved_fd): new function for diverting reserved FD. If the given FD is the same as one of the reserved FDs, the reserved FD number is internally changed. It returns -1 when error. Otherwise, returns 0. It also returns 0 if there is no need to change reserved FD number. * thread_win32.c (rb_divert_reserved_fd): always returns 0 because of no reserved FDs. * internal.h (rb_divert_reserved_fd): prototype declaration. It is Ruby internal use only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- internal.h | 1 + 1 file changed, 1 insertion(+) (limited to 'internal.h') diff --git a/internal.h b/internal.h index b51b49ee77..c91d8caba0 100644 --- a/internal.h +++ b/internal.h @@ -1150,6 +1150,7 @@ void ruby_kill(rb_pid_t pid, int sig); /* thread_pthread.c, thread_win32.c */ void Init_native_thread(void); +int rb_divert_reserved_fd(int fd); /* transcode.c */ extern VALUE rb_cEncodingConverter; -- cgit v1.2.3