ruby-changes:1892
From: ko1@a...
Date: 7 Sep 2007 15:42:59 +0900
Subject: [ruby-changes:1892] shyouhei - Ruby:r13383 (ruby_1_8_6): * process.c (detach_process_watcher): should not pass the pointer
shyouhei 2007-09-07 15:42:50 +0900 (Fri, 07 Sep 2007)
New Revision: 13383
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 (detach_process_watcher): should not pass the pointer
to an auto variable to the thread to be created. pointed and
fix by KUBO Takehiro <kubo at jiubao.org> [ruby-dev:30618]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/ChangeLog?r1=13383&r2=13382
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/version.h?r1=13383&r2=13382
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/process.c?r1=13383&r2=13382
Index: ruby_1_8_6/process.c
===================================================================
--- ruby_1_8_6/process.c (revision 13382)
+++ ruby_1_8_6/process.c (revision 13383)
@@ -848,23 +848,22 @@
}
static VALUE
-detach_process_watcher(pid_p)
- int *pid_p;
+detach_process_watcher(arg)
+ void *arg;
{
- int cpid, status;
+ int pid = (int)arg, status;
- for (;;) {
- cpid = rb_waitpid(*pid_p, &status, WNOHANG);
- if (cpid != 0) return Qnil;
+ while (rb_waitpid(pid, &status, WNOHANG) == 0) {
rb_thread_sleep(1);
}
+ return Qnil;
}
VALUE
rb_detach_process(pid)
int pid;
{
- return rb_thread_create(detach_process_watcher, (void*)&pid);
+ return rb_thread_create(detach_process_watcher, (void*)pid);
}
Index: ruby_1_8_6/ChangeLog
===================================================================
--- ruby_1_8_6/ChangeLog (revision 13382)
+++ ruby_1_8_6/ChangeLog (revision 13383)
@@ -1,3 +1,9 @@
+Fri Sep 7 15:42:07 2007 Nobuyoshi Nakada <nobu@r...>
+
+ * process.c (detach_process_watcher): should not pass the pointer
+ to an auto variable to the thread to be created. pointed and
+ fix by KUBO Takehiro <kubo at jiubao.org> [ruby-dev:30618]
+
Fri Sep 7 15:40:47 2007 Nobuyoshi Nakada <nobu@r...>
* sample/test.rb, test/ruby/test_system.rb(valid_syntax?): keep
Index: ruby_1_8_6/version.h
===================================================================
--- ruby_1_8_6/version.h (revision 13382)
+++ ruby_1_8_6/version.h (revision 13383)
@@ -2,7 +2,7 @@
#define RUBY_RELEASE_DATE "2007-09-07"
#define RUBY_VERSION_CODE 186
#define RUBY_RELEASE_CODE 20070907
-#define RUBY_PATCHLEVEL 91
+#define RUBY_PATCHLEVEL 92
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml