Monitor synchronize hangs
-------------------------
Key: JRUBY-1239
URL: http://jira.codehaus.org/browse/JRUBY-1239
Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules
Affects Versions: JRuby 1.0.0
Environment: ruby 1.8.5 (2007-06-07 rev 3841) [x86-jruby1.0]
Reporter: Doug Donohoe
Priority: Blocker
This program (adapted from the pick-axe book) hangs in JRuby. It works without
the "synchronize" block in sync_tick.
========================================================
#!/usr/bin/ruby
# multi-threading
require 'monitor'
class Counter
include MonitorMixin
attr_reader :count, :scount
def initialize
@count = 0
@scount = 0
super
end
def tick
@count += 1
end
def sync_tick
synchronize do
@scount += 1
end
end
end
c = Counter.new
threads = []
2.times do
threads << Thread.new { 1_000.times { c.tick; c.sync_tick }}
end
threads.each { |t| t.join }
puts "Thread counter count=#{c.count} scount=#{c.scount}"
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email