[ruby-cvs:72098] nagachika:r64998 (ruby_2_5): merge revision(s) 63711, 64398: [Backport #14841]

nagachika at ruby-lang.org nagachika at ruby-lang.org
Thu Oct 11 23:40:04 JST 2018


nagachika	2018-10-11 23:40:04 +0900 (Thu, 11 Oct 2018)

  New Revision: 64998

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

  Log:
    merge revision(s) 63711,64398: [Backport #14841]
    
    thread_sync.c (rb_mutex_lock): fix deadlock
    
    * thread_sync.c (rb_mutex_lock): fix deadlock
      [ruby-core:87467] [Bug #14841]
    
    thread_sync.c (rb_mutex_lock): acquire lock before being killed
    
    We (the thread acquiring the mutex) need to acquire the mutex
    before being killed to work with ConditionVariable#wait.
    
    Thus we reinstate the acquire-immediately-after-sleeping logic
    from pre-r63711 while still retaining the
    acquire-after-checking-for-interrupts logic from r63711.
    
    This regression was introduced in
    commit 501069b8a4013f2e3fdde35c50e9527ef0061963 (r63711)
    ("thread_sync.c (rb_mutex_lock): fix deadlock") for
    [Bug #14841]
    
    [ruby-core:88503] [Bug #14999] [Bug #14841]

  Modified directories:
    branches/ruby_2_5/
  Modified files:
    branches/ruby_2_5/thread_sync.c
    branches/ruby_2_5/version.h


More information about the ruby-cvs mailing list