[ruby-cvs:73590] normal:r66489 (trunk): thread_sync.c (rb_mutex_t): eliminate fork_gen

normal at ruby-lang.org normal at ruby-lang.org
Sat Dec 22 10:41:18 JST 2018


normal	2018-12-22 10:41:18 +0900 (Sat, 22 Dec 2018)

  New Revision: 66489

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66489

  Log:
    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.

  Modified files:
    trunk/thread.c
    trunk/thread_sync.c


More information about the ruby-cvs mailing list