[ruby-core:64015] [ruby-trunk - Bug #10076] [Feedback] 2nd thread can't get mutex even though 1st thread released it (race)

From: naruse@...
Date: 2014-07-25 18:49:36 UTC
List: ruby-core #64015
Issue #10076 has been updated by Yui NARUSE.

Status changed from Open to Feedback

----------------------------------------
Bug #10076: 2nd thread can't get mutex even though 1st thread released it (race)
https://bugs.ruby-lang.org/issues/10076#change-48030

* Author: Dmitry Maksyoma
* Status: Feedback
* Priority: Normal
* Assignee: 
* Category: lib
* Target version: 
* ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [i686-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
~~~ruby
require 'thread'

m = Mutex.new

Thread.abort_on_exception = true
Thread.new {
  loop {
    m.synchronize {
      puts 'got mutex in thread'
      sleep 0.1
    }
  }
}

loop {
  m.synchronize {
    puts 'got mutex in loop'
    sleep 1
  }
  # Without sleep, the thread above has no chance of getting the mutex.
  #sleep 0.1
}
~~~


---Files--------------------------------
monitor-test (344 Bytes)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next