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