Concurrency issue with SuperCallSite
------------------------------------

                 Key: JRUBY-4568
                 URL: http://jira.codehaus.org/browse/JRUBY-4568
             Project: JRuby
          Issue Type: Bug
          Components: Miscellaneous
            Reporter: Charles Oliver Nutter
            Assignee: Charles Oliver Nutter
            Priority: Blocker
             Fix For: JRuby 1.5


After fixing RespondToCallSite for JRUBY-4548, I theorized that SuperCallSite 
may suffer from the same problem. I was right.

The following script raises almost immediately when run on JRuby:

{noformat}
class Top
  def foo
    "foo"
  end

  def bar
    "bar"
  end
end

class Bottom < Top
  body = proc do
    super()
  end

  define_method :foo, &body
  define_method :bar, &body
end

10.times do
  Thread.new do
    loop do
      begin
        Thread.main.raise unless Bottom.new.foo == "foo"
        Thread.main.raise unless Bottom.new.bar == "bar"
      rescue
        Thread.main.raise $!
      end
    end
  end
end

sleep
{noformat}

-- 
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


Reply via email to