Skip to content
  • nagachika's avatar
    c561f04b
    merge revision(s) 63711,64398: [Backport #14841] · c561f04b
    nagachika authored
    	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 501069b8 (r63711)
    	("thread_sync.c (rb_mutex_lock): fix deadlock") for
    	[Bug #14841]
    
    	[ruby-core:88503] [Bug #14999] [Bug #14841]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    c561f04b
    merge revision(s) 63711,64398: [Backport #14841]
    nagachika authored
    	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 501069b8 (r63711)
    	("thread_sync.c (rb_mutex_lock): fix deadlock") for
    	[Bug #14841]
    
    	[ruby-core:88503] [Bug #14999] [Bug #14841]
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Loading