summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-22 01:41:18 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-22 01:41:18 +0000
commit0fd53f519fb37b1dfe37be9f53ebc7889f405114 (patch)
tree9243e5b507696ebe7bdc28bcaf3626f95d724248 /thread.c
parent5072f03741087c869b2ded0c29349e9f3a361891 (diff)
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.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/thread.c b/thread.c
index faecec7a04..58e7651446 100644
--- a/thread.c
+++ b/thread.c
@@ -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. */