# Deadlock detection when main thread calls Thread.stop

**URL:** <https://www.ruby-forum.com/t/deadlock-detection-when-main-thread-calls-thread-stop/107578>\
**Category:** Development\
**Created:** [June 23, 2007, 4:36pm UTC](https://www.ruby-forum.com/t/deadlock-detection-when-main-thread-calls-thread-stop/107578 "2007-06-23T16:36:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [June 23, 2007, 4:36pm UTC](https://www.ruby-forum.com/t/deadlock-detection-when-main-thread-calls-thread-stop/107578/1 "2007-06-23T16:36:07Z")

</div>

e$B$3$s$P$s$O!"e(Bsheepman e$B$G$9!#e(B

e$B:Y$+$$OC$G$9$,!#7k2LE\*$K%a%$%s%9%l%C%I$@$1$,e(B Thread.stop  
e$B$7$F$$$k\>uBV$Ke(B  
e$B$J$C$?;~$K!“e(Bdeadlock  
e$B$NNc30$,H/@8$7$J$$$N$O$=$&$$$&$b$N$J$N$G$7$g$&$+!#e(B  
e$B%a%$%s%9%l%C%I0J30$Ke(B Thread.stop  
e$B$7$F$$$k%9%l%C%I$,$b$&$R$H$D$”$C$?\>l9g$O!"e(B  
deadlock e$B$NNc30$,H/@8$7$^$9!#e(B

e$B2?$+8!=P$9$k%G%C%I%m%C%/$N4p=`$\_$?$$$J$b$N$O$"$k$N$G$7$g$&$+!#$"$l$P%j%U%!%l%s%9$Ke(B  
e$B=q$-B-$7$F$\*$-$^$9!#e(B

$ cat dlck2.rb  
Thread.new do  
sleep 1  
end

sleep 0.1  
Thread.stop

$ ruby-1.8 -v dlck2.rb  
ruby 1.8.6 (2007-06-18 patchlevel 5000) [i686-linux]  
(e$B%G%C%I%m%C%/H/@8e(B)

$ cat dlck3.rb  
Thread.new do  
sleep 1  
p 3  
end

Thread.new do  
sleep 0.1  
p 1  
Thread.stop  
end

sleep 0.5  
p 2  
Thread.stop

$ ruby-1.8 -v dlck3.rb  
ruby 1.8.6 (2007-06-18 patchlevel 5000) [i686-linux]  
1  
2  
3  
deadlock 0x4022e6fc: sleep:- (main) - dlck3.rb:14  
deadlock 0x40221830: sleep:- - dlck3.rb:9  
dlck3.rb:1: Thread(0x40221894): deadlock (fatal)

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [June 23, 2007, 5:01pm UTC](https://www.ruby-forum.com/t/deadlock-detection-when-main-thread-calls-thread-stop/107578/2 "2007-06-23T17:01:10Z")

</div>

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

In message “Re: [ruby-dev:31039] deadlock detection when main thread  
calls Thread.stop”  
on Sat, 23 Jun 2007 23:34:54 +0900, sheepman  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B:Y$+$$OC$G$9$,!#7k2LE\*$K%a%$%s%9%l%C%I$@$1$,e(B Thread.stop e$B$7$F$$$k\>uBV$Ke(B  
|e$B$J$C$?;~$K!“e(Bdeadlock e$B$NNc30$,H/@8$7$J$$$N$O$=$&$$$&$b$N$J$N$G$7$g$&$+!#e(B  
|e$B%a%$%s%9%l%C%I0J30$Ke(B Thread.stop e$B$7$F$$$k%9%l%C%I$,$b$&$R$H$D$”$C$?\>l9g$O!“e(B  
|deadlock e$B$NNc30$,H/@8$7$^$9!#e(B  
|  
|e$B2?$+8!=P$9$k%G%C%I%m%C%/$N4p=`$\_$?$$$J$b$N$O$”$k$N$G$7$g$&$+!#$"$l$P%j%U%!%l%s%9$Ke(B  
|e$B=q$-B-$7$F$\*$-$^$9!#e(B

e$B4p=`$O!"e(B

- e$BJ#?t%9%l%C%I$,$"$ke(B
- e$B$9$Y$F$,e(Bstope$B\>uBVe(B(waite$B$G$J$$e(B)

e$B$G$9!#C10l%9%l%C%I$N\>l9g!"e(Bsleep forevere$B$H$\*$J$8$@$m$&$H$$$&e(B  
e$B$3$H$G%G%C%I%m%C%/$K$7$F$^$;$s!#e(B
