diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-22 01:41:18 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-22 01:41:18 +0000 |
commit | 0fd53f519fb37b1dfe37be9f53ebc7889f405114 (patch) | |
tree | 9243e5b507696ebe7bdc28bcaf3626f95d724248 /thread.c | |
parent | 5072f03741087c869b2ded0c29349e9f3a361891 (diff) | |
download | ruby-0fd53f519fb37b1dfe37be9f53ebc7889f405114.tar.gz |
thread_sync.c (rb_mutex_t): eliminate fork_gen
The true bug fork_gen was hiding was rb_mutex_abandon_locking_mutex
failing to unconditionally clear the waitq of mutexes it was
waiting on. So we fix rb_mutex_abandon_locking_mutex, instead,
and eliminate rb_mutex_cleanup_keeping_mutexes.
This commit was tested heavily on a single-core Pentium-M which
was my most reliable reproducer of the "crash.rb" script from
[Bug #15383]
[Bug #14578] [Bug #15383]
Note: [Bug #15430] turned out to be an entirely different
problem: RLIMIT_NPROC limit was hit on the CI VMs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 1 |
1 files changed, 0 insertions, 1 deletions
@@ -4449,7 +4449,6 @@ rb_thread_atfork(void) rb_thread_t *th = GET_THREAD(); rb_thread_atfork_internal(th, terminate_atfork_i); th->join_list = NULL; - rb_mutex_cleanup_keeping_mutexes(th); rb_fiber_atfork(th); /* We don't want reproduce CVE-2003-0900. */ |