diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-15 13:27:28 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-15 13:27:28 +0000 |
commit | e25eace6a6300470861ea6c40d4e2172e06bbb8d (patch) | |
tree | a096ec12295659c1e453c593e334402bd3413ab5 | |
parent | 76940d8a763a45defd36a26bec4159c500d026e4 (diff) |
merge revision(s) 60079: [Backport #13794]
thread_pthread.c: do not wakeup inside child processes
* thread_pthread.c (rb_thread_wakeup_timer_thread): check
ownership before incrementing
(rb_thread_wakeup_timer_thread_low): ditto
[Bug #13794] [ruby-core:83064]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@61854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | thread_pthread.c | 16 | ||||
-rw-r--r-- | version.h | 10 |
2 files changed, 15 insertions, 11 deletions
diff --git a/thread_pthread.c b/thread_pthread.c index 810f5c5de6..87d9220ea9 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -1318,17 +1318,21 @@ void rb_thread_wakeup_timer_thread(void) { /* must be safe inside sighandler, so no mutex */ - ATOMIC_INC(timer_thread_pipe.writing); - rb_thread_wakeup_timer_thread_fd(&timer_thread_pipe.normal[1]); - ATOMIC_DEC(timer_thread_pipe.writing); + if (timer_thread_pipe.owner_process == getpid()) { + ATOMIC_INC(timer_thread_pipe.writing); + rb_thread_wakeup_timer_thread_fd(&timer_thread_pipe.normal[1]); + ATOMIC_DEC(timer_thread_pipe.writing); + } } static void rb_thread_wakeup_timer_thread_low(void) { - ATOMIC_INC(timer_thread_pipe.writing); - rb_thread_wakeup_timer_thread_fd(&timer_thread_pipe.low[1]); - ATOMIC_DEC(timer_thread_pipe.writing); + if (timer_thread_pipe.owner_process == getpid()) { + ATOMIC_INC(timer_thread_pipe.writing); + rb_thread_wakeup_timer_thread_fd(&timer_thread_pipe.low[1]); + ATOMIC_DEC(timer_thread_pipe.writing); + } } /* VM-dependent API is not available for this function */ @@ -1,10 +1,10 @@ #define RUBY_VERSION "2.4.4" -#define RUBY_RELEASE_DATE "2017-12-25" -#define RUBY_PATCHLEVEL 227 +#define RUBY_RELEASE_DATE "2018-01-15" +#define RUBY_PATCHLEVEL 228 -#define RUBY_RELEASE_YEAR 2017 -#define RUBY_RELEASE_MONTH 12 -#define RUBY_RELEASE_DAY 25 +#define RUBY_RELEASE_YEAR 2018 +#define RUBY_RELEASE_MONTH 1 +#define RUBY_RELEASE_DAY 15 #include "ruby/version.h" |