diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-11-05 22:03:54 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-11-05 22:03:54 +0000 |
commit | 340c3b4638fd671d84a6249a33f71c71774d94b3 (patch) | |
tree | 5fa7766a3a7249b854bc1f9dce287a54d41f308c /process.c | |
parent | a7188103fd615ce7887d4cecdd200742fac114b9 (diff) | |
download | ruby-340c3b4638fd671d84a6249a33f71c71774d94b3.tar.gz |
* process.c (rb_fork_err): save errinfo before fdopen.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -2569,8 +2569,9 @@ rb_fork_err(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALU if (!(int)rb_protect(chfunc_protect, (VALUE)&arg, &state)) _exit(EXIT_SUCCESS); #ifdef FD_CLOEXEC if (write(ep[1], &state, sizeof(state)) == sizeof(state) && state) { + VALUE errinfo = rb_errinfo(); io = rb_io_fdopen(ep[1], O_WRONLY|O_BINARY, NULL); - rb_marshal_dump(rb_errinfo(), io); + rb_marshal_dump(errinfo, io); rb_io_flush(io); } err = errno; |