[#24105] [Bug #1711] Marshal Failing to Round-Trip Certain Recurisve Data Structures — Run Paint Run Run <redmine@...>

Bug #1711: Marshal Failing to Round-Trip Certain Recurisve Data Structures

9 messages 2009/07/01

[#24116] [Bug #1715] Numeric#arg for NaN is Inconsistent Across Versions — Run Paint Run Run <redmine@...>

Bug #1715: Numeric#arg for NaN is Inconsistent Across Versions

10 messages 2009/07/02

[#24240] [Bug #1755] IO#reopen Doesn't Fully Associate with Given Stream on 1.9; Ignores pos on 1.8 — Run Paint Run Run <redmine@...>

Bug #1755: IO#reopen Doesn't Fully Associate with Given Stream on 1.9; Ignores pos on 1.8

8 messages 2009/07/09

[#24321] [Bug #1773] Gem path doesn't honor user gem? — Lin Jen-Shin <redmine@...>

Bug #1773: Gem path doesn't honor user gem?

12 messages 2009/07/14

[#24390] [Feature #1784] More encoding (Big5 series) support? — Lin Jen-Shin <redmine@...>

Feature #1784: More encoding (Big5 series) support?

12 messages 2009/07/16

[#24467] Re: [ruby-cvs:31226] Ruby:r24008 (ruby_1_8_6): Removed private on to_date and to_datetime. — Urabe Shyouhei <shyouhei@...>

Hello.

10 messages 2009/07/21

[#24472] [Feature #1800] rubygems can replace system executable files — Kazuhiro NISHIYAMA <redmine@...>

Feature #1800: rubygems can replace system executable files

13 messages 2009/07/21

[#24530] [Feature #1811] Default BasicSocket.do_not_reverse_lookup to true — Roger Pack <redmine@...>

Feature #1811: Default BasicSocket.do_not_reverse_lookup to true

9 messages 2009/07/23

[#24624] [Bug #1844] Immediates Should Not Respond to :dup — Run Paint Run Run <redmine@...>

Bug #1844: Immediates Should Not Respond to :dup

15 messages 2009/07/30

[ruby-core:24563] Re: [Bug #1525] Deadlock in Ruby 1.9's VM caused by ConditionVariable.wait and fork?

From: "none <" <tetsu.soh.dev@...>
Date: 2009-07-26 03:05:18 UTC
List: ruby-core #24563
Vanja Bucic wrote:
> Issue #1525 has been updated by Vanja Bucic.
>
>
> In Reply to:
> -- IMHO, from the respective of user, although it is hard, try not to use
> -- any non-async-signal-safe functions in a forked child process before any
> -- exec functions are called.
>
> -- - Tetsu
>
> Just so I can understand the logic, could you rewrite my test case above so that it does not deadlock?
> I am not clear which of the functions I used in the test case are non-async-signal-safe or not.
>
> Thanks.
> ----------------------------------------
> http://redmine.ruby-lang.org/issues/show/1525
>
> ----------------------------------------
> http://redmine.ruby-lang.org
>
>   
Your test code was fine. The deadlock is not caused directly by your 
code but may be related to the timer thread which is  created 
automatically (by ruby processor) after forking a process. And creating 
a native thread (Ruby1.8 was not native threaded, so it is ok.) is not 
async-signal-safe. So deadlock occurs.

What I mean is that user should try to avoid the following code:
    fork do
        Thread.new do   #Bad! Creating native threads is not safe.
           #some code
        end
    end


Thanks.
-Tetsu

In This Thread