nobu
January 25, 2010, 9:08am
1
e$B$J$+$@$G$9!#e (B
PTY.checke$B$,$$$m$$$m$H2u$l$F$$$k$h$&$J5$$,$7$^$9!#e (B
r20298e$B$K$h$k$He(B PTY.check(pid) to poll program termination.
e$B$He(B
e$B$$$&$3$H$J$N$K=*N;$^$GBT$AB3$1$ke(B
e$B%a%=%C%IK\BN$J$N$Ke(Bint statuse$B$rJV$7$F$$$ke(B
pid_te$B$r4|BT$9$ke(Braise_from_check()e$B$Ke(BVALUEe$B$rEO$7$F$$$ke(B
Index: ext/pty/pty.c
— ext/pty/pty.c (revision 26395)
+++ ext/pty/pty.c (working copy)
@@ -606,9 +606,9 @@ pty_check(int argc, VALUE *argv, VALUE s
rb_scan_args(argc, argv, "11", &pid, &exc);
cpid = rb_waitpid(NUM2PIDT(pid), &status, WUNTRACED);
cpid = rb_waitpid(NUM2PIDT(pid), &status, WNOHANG|WUNTRACED);
if (cpid == -1) return Qnil;
if (!RTEST(exc)) return status;
raise_from_check(pid, status);
if (!RTEST(exc)) return rb_last_status_get();
raise_from_check(cpid, status);
return Qnil; /* not reached */
}
nobu
January 25, 2010, 9:42am
2
e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
In message “Re: [ruby-dev:40141] [Bug:1.9] PTY.check is broken”
on Mon, 25 Jan 2010 17:07:53 +0900, Nobuyoshi N.
[email protected] writes:
|* r20298e$B$K$h$k$He(B PTY.check(pid) to poll program termination. e$B$He(B
| e$B$$$&$3$H$J$N$K=N;$^$GBT$AB3$1$ke(B
| e$B%a%=%C%IK\BN$J$N$Ke(Bint statuse$B$rJV$7$F$$$ke(B
|* pid_te$B$r4|BT$9$ke(Braise_from_check()e$B$Ke(BVALUEe$B$rEO$7$F$$$ke(B
e$B%3%_%C%H$7$F$/$@$5$$!#e (B
nobu
January 25, 2010, 9:47am
3
e$B%A%1%C%He(B #2642 e$B$,99?7$5$l$^$7$?!#e (B (by Nobuyoshi N.)
e$B%9%F!<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B
This issue was solved with changeset r26402.
Nobuyoshi, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
http://redmine.ruby-lang.org/issues/show/2642