[#8136] Confused exception handling in Continuation Context — "Robert Dober" <robert.dober@...>

Hi all

13 messages 2006/07/06

[#8248] One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...>

I just posted this to ruby-talk. But I would also like to discuss this

33 messages 2006/07/18
[#8264] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

From my experience using both tool chains on Windows (for the ruby-prof

[#8266] Re: One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...> 2006/07/19

Tim, I'm going to top reply since your post was so long. I'm interested in

[#8267] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

> Tim, I'm going to top reply since your post was so long. I'm interested in

[#8271] my sandboxing extension!! — why the lucky stiff <ruby-core@...>

I have (what feels like) very exciting news. I finally sat down to code up my

17 messages 2006/07/19

[#8430] Re: doc patch: weakref. — "Berger, Daniel" <Daniel.Berger@...>

> -----Original Message-----

19 messages 2006/07/28
[#8434] Re: doc patch: weakref. — Yukihiro Matsumoto <matz@...> 2006/07/29

Hi,

[#8436] Re: doc patch: weakref. — Daniel Berger <djberg96@...> 2006/07/29

Yukihiro Matsumoto wrote:

[#8437] Re: doc patch: weakref. — Mauricio Fernandez <mfp@...> 2006/07/29

On Sat, Jul 29, 2006 at 07:37:24PM +0900, Daniel Berger wrote:

[#8441] Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...>

I have the following code:

18 messages 2006/07/30
[#8442] Re: Inconsistency in scoping during module_eval? — nobu@... 2006/07/30

Hi,

[#8443] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/30

Why does this:

[#8445] Re: Inconsistency in scoping during module_eval? — Yukihiro Matsumoto <matz@...> 2006/07/30

Hi,

[#8454] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/31

So to clarify...

[BUG] thread/sync.rb memory corruption

From: ara.t.howard@...
Date: 2006-07-06 13:49:18 UTC
List: ruby-core #8142
i'm using ef (electric fence) to show the memory corruption in this script.
to cause it corrupt memory use

   CORRUPT=true ef ruby bug.rb

file: bug.rb

     require 'sync'

     class A
       def initialize
         extend Sync_m
         @observers = []
       end
       def meth
         synchronize(:EX){
           @observers.each do |o|
             if ENV['CORRUPT']
               o.notify nil
             else
               o.notify
             end
           end
         }
       end
       def add_observer o
         synchronize(:EX){
           @observers << o
         }
       end
     end

     class B
       def initialize a
         @a = a
         @a.add_observer self
       end
       def notify *a
         Thread.new{ @a.meth }
       end
     end

     a = A.new
     b = B.new a
     a.meth
     STDIN.gets


note that it is the simple passing, or not, of arguments to the notify method
which triggers the bug.  perhaps this will yield some hints.


regards.

-a
-- 
suffering increases your inner strength.  also, the wishing for suffering
makes the suffering disappear.
- h.h. the 14th dali lama

Attachments (1)

bug.rb (547 Bytes, text/x-ruby)
require 'sync'

class A
  def initialize
    extend Sync_m
    @observers = []
  end
  def meth
    synchronize(:EX){
      @observers.each do |o|
        if ENV['CORRUPT'] 
          o.notify nil
        else
          o.notify
        end
      end
    }
  end
  def add_observer o
    synchronize(:EX){
      @observers << o
    }
  end
end

class B
  def initialize a
    @a = a
    @a.add_observer self
  end
  def notify *a 
    Thread.new{ @a.meth }
  end
end

a = A.new
b = B.new a
a.meth
STDIN.gets

In This Thread

Prev Next