# \[Bug:1.9\] pty hang

**URL:** <https://www.ruby-forum.com/t/bug-1-9-pty-hang/155546>\
**Category:** Development\
**Created:** [December 13, 2008, 6:57am UTC](https://www.ruby-forum.com/t/bug-1-9-pty-hang/155546 "2008-12-13T06:57:49Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 13, 2008, 6:57am UTC](https://www.ruby-forum.com/t/bug-1-9-pty-hang/155546/1 "2008-12-13T06:57:49Z")

</div>

pty e$B$G%O%s%0$9$k$3$H$,$"$j$^$9!#e(B

% ./ruby -rpty -e ‘p $$; r,w,pid = PTY.spawn(“echo a”); p pid; p r.gets’  
19510  
19512  
e$B$3$3$G%O%s%0e(B

e$BB\>$NC\<Kv$+$ie(B ps e$B$G$\_$k$H!";R%W%m%;%9$,e(B echo  
e$B$K$J$C$F$^$;$s!#e(B  
e$B$D$^$j!"e(Bexec e$B0JA0$G%O%s%0$7$F$$$k$h$&$G$9!#e(B

% ps auxww|egrep ‘19510|19512’  
akr 19510 0.0 0.3 7548 2904 pts/21 Sl+ 14:47 0:00 ./ruby  
-rpty -e p $$; r,w,pid = PTY.spawn(“echo a”); p pid; p r.gets  
akr 19512 0.0 0.1 7732 1680 pts/27 Ss+ 14:47 0:00 ./ruby  
-rpty -e p $$; r,w,pid = PTY.spawn(“echo a”); p pid; p r.gets  
akr 19733 0.0 0.0 4256 816 pts/20 S+ 14:51 0:00 grep -E  
19510|19512

e$B$J$\*!"%O%s%0$7$J$$$3$H$b$"$j$^$9!#$$$^e(B  
16e$B2s$d$C$F$\_$?$H$3$m!"e(B  
8e$B2s%O%s%0$7$^$7$?!#$=$l$/$i$$$GLdBj$,5/$-$^$9!#e(B

% ./ruby -v  
ruby 1.9.1 (2008-12-05 patchlevel 5000 revision 20528) [i686-linux]

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 13, 2008, 3:04pm UTC](https://www.ruby-forum.com/t/bug-1-9-pty-hang/155546/2 "2008-12-13T15:04:01Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B$H8F$S=P$5$l$Fe(B native\_cond\_signal e$B$,%O%s%0$7$F$^$9!#$C$F!"$3e(B  
> e$B$l$,$J$\<%O%s%0$9$k$N$+;d$K$O$o$+$i$J$$$s$G$9$,!#e(B

e$B;W$&$K!"e(Bfork e$B$7$?;R%W%m%;%9$G!"e(Bexec  
e$B$9$kM=Dj$J$i!"e(Bthread e$B2se(B  
e$B$j$K$O$$$C$5$$\<j$r?($l$J$$$N$,$$$$$s$8$c$J$$$G$9$+$M$'!#e(B

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [December 13, 2008, 11:34am UTC](https://www.ruby-forum.com/t/bug-1-9-pty-hang/155546/3 "2008-12-13T11:34:12Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:37418] [Bug:1.9] pty hang”  
on Sat, 13 Dec 2008 14:49:56 +0900, Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:  
|  
|pty e$B$G%O%s%0$9$k$3$H$,$“$j$^$9!#e(B  
|  
|% ./ruby -rpty -e ‘p $$; r,w,pid = PTY.spawn(“echo a”); p pid; p r.gets’  
|19510  
|19512  
|e$B$3$3$G%O%s%0e(B  
|  
|e$BB\>$NC\<Kv$+$ie(B ps e$B$G$\_$k$H!”;R%W%m%;%9$,e(B echo e$B$K$J$C$F$^$;$s!#e(B  
|e$B$D$^$j!"e(Bexec e$B0JA0$G%O%s%0$7$F$$$k$h$&$G$9!#e(B

e$B%5%V%W%m%;%9$Ge(B

proc\_exec\_v  
before\_exec  
rb\_thread\_stop\_timer\_thread  
native\_stop\_timer\_thread

e$B$H8F$S=P$5$l$Fe(B native\_cond\_signal e$B$,%O%s%0$7$F$^$9!#$C$F!"$3e(B  
e$B$l$,$J$\<%O%s%0$9$k$N$+;d$K$O$o$+$i$J$$$s$G$9$,!#e(B
