[#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...

Re: [ ruby-Patches-5111 ] Instability around popen due to missing rb_thread_atfork

From: Jonathan Paisley <jp-www@...>
Date: 2006-07-23 18:18:11 UTC
List: ruby-core #8370
On 19 Jul 2006, at 8:25, <nobu@ruby-lang.org> <nobu@ruby-lang.org>  
wrote:
> > Solution is to add a call to 'rb_thread_atfork()' in the
> > child after fork() in order to kill off those other threads.
>
> Sounds reasonable.
Is it possible to get that fix into 1.8.5?

> > On a related theme, it seems like the 'rb_proc_exec' in
> > process.c:pipe_open() should be protected with rb_protect or
> > similar, to prevent any exceptions raised during
> > rb_proc_exec() from being propagated to the soon-to-be-dead
> > main thread in the child process. I'm not familiar enough
> > with use of rb_protect to provide a proper patch for that.
>
> The point would be any exceptions must not be raised after
> fork.
Well, an exception should probably just cause the interpreter to  
exit. It should not, for example, allow a subsequent exec() syscall  
to be invoked.

> It should be done in 1.9 almost, but it's bad time to
> backport that change from trunk now.

I wasn't sure from your enclosed attached patches whether they are  
for 1.8 or 1.9. The process.c patch appeared to be on the ruby_1_8  
branch, but io.c patch was on head. Could you explain further, or is  
there perhaps a web page that explains the process in more detail?

Many thanks for your response to my bug report - much appreciated,
Jonathan

> Index: process.c
> ===================================================================
> RCS file: /cvs/ruby/src/ruby/process.c,v
> retrieving revision 1.92.2.30
> diff -p -U 2 -r1.92.2.30 process.c
> --- process.c   18 Jul 2006 05:53:33 -0000      1.92.2.30
> +++ process.c   19 Jul 2006 06:32:44 -0000
> Index: io.c
> ===================================================================
> RCS file: /cvs/ruby/src/ruby/io.c,v
> retrieving revision 1.412
> diff -p -u -2 -r1.412 io.c
> --- io.c        3 Jul 2006 01:44:05 -0000       1.412
> +++ io.c        19 Jul 2006 07:11:34 -0000
> @@ -2949,4 +2949,5 @@ popen_exec(void *pp)
>      int fd;
>
> +    rb_thread_atfork();
>      popen_redirect(p);
>      for (fd = 3; fd < NOFILE; fd++) {
> Index: process.c
> ===================================================================
> RCS file: /cvs/ruby/src/ruby/process.c,v
> retrieving revision 1.149
> diff -p -u -2 -r1.149 process.c
> --- process.c   18 Jul 2006 14:55:28 -0000      1.149
> +++ process.c   19 Jul 2006 07:22:40 -0000
>




In This Thread