[前][次][番号順一覧][スレッド一覧]

ruby-changes:1659

From: ko1@a...
Date: 22 Aug 2007 09:39:11 +0900
Subject: [ruby-changes:1659] shyouhei - Ruby:r13150 (ruby_1_8_6): * process.c (proc_exec_v, rb_proc_exec): preserve errno.

shyouhei	2007-08-22 09:39:04 +0900 (Wed, 22 Aug 2007)

  New Revision: 13150

  Modified files:
    branches/ruby_1_8_6/ChangeLog
    branches/ruby_1_8_6/process.c
    branches/ruby_1_8_6/version.h

  Log:
    * process.c (proc_exec_v, rb_proc_exec): preserve errno.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/ChangeLog?r1=13150&r2=13149
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/version.h?r1=13150&r2=13149
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/process.c?r1=13150&r2=13149

Index: ruby_1_8_6/process.c
===================================================================
--- ruby_1_8_6/process.c	(revision 13149)
+++ ruby_1_8_6/process.c	(revision 13150)
@@ -117,7 +117,10 @@
 #endif
 #endif
 
+#define preserving_errno(stmts) \
+	do {int saved_errno = errno; stmts; errno = saved_errno;} while (0)
 
+
 /*
  *  call-seq:
  *     Process.pid   => fixnum
@@ -990,7 +993,7 @@
     before_exec();
     rb_thread_cancel_timer();
     execv(prog, argv);
-    after_exec();
+    preserving_errno(after_exec());
     return -1;
 }
 
@@ -1059,7 +1062,7 @@
 #else
 	    before_exec();
 	    execl("/bin/sh", "sh", "-c", str, (char *)NULL);
-	    after_exec();
+	    preserving_errno(after_exec());
 #endif
 #endif
 	    return -1;
Index: ruby_1_8_6/ChangeLog
===================================================================
--- ruby_1_8_6/ChangeLog	(revision 13149)
+++ ruby_1_8_6/ChangeLog	(revision 13150)
@@ -1,3 +1,7 @@
+Wed Aug 22 09:38:43 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* process.c (proc_exec_v, rb_proc_exec): preserve errno.
+
 Wed Aug 22 09:00:23 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* eval.c (ruby_cleanup): return EXIT_FAILURE if any exceptions occured
Index: ruby_1_8_6/version.h
===================================================================
--- ruby_1_8_6/version.h	(revision 13149)
+++ ruby_1_8_6/version.h	(revision 13150)
@@ -2,7 +2,7 @@
 #define RUBY_RELEASE_DATE "2007-08-22"
 #define RUBY_VERSION_CODE 186
 #define RUBY_RELEASE_CODE 20070822
-#define RUBY_PATCHLEVEL 49
+#define RUBY_PATCHLEVEL 50
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]