Project

General

Profile

« Previous | Next » 

Revision f5b0b984

Added by usa (Usaku NAKAMURA) over 5 years ago

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]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@65115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e