e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B
e$B2sEz$r$"$j$,$H$&$4$6$$$^$9!%e(B
From: SASADA Koichi [email protected]
Subject: [ruby-dev:30202] Re: YARV e$B$Ne(B thread e$B$K$D$$$Fe(B
Date: Mon, 29 Jan 2007 10:27:56 +0900
Message-ID: [email protected]
e$B!!0l1~!“e(Bmodel 3 e$B$K$D$$$F$O;n:n$7$?$b$N$,$”$j$^$9!#$“$H$O3005!J$d$C$Q$jJBe(B
e$BNs$KF0$+$J$$$H$J$!!”$H$+!K$H3’$N$d$k5$!J0l?M$G$d$k$K$O$A$g$C$H$D$i$$!K$de(B
e$B%j%=!<%9!J$I$C$+$N2q<R$K$h$C$F<h$jAH$`$H$+!K$K$h$k$+$H;W$$$^$9!#e(B
e$B!!e(Bmodel 1 e$B$O!“$3$l$b3005!J%M%$%F%#%V%9%l%C%I$&$<!<$h!*!!$H$$$&@<!K$K$h$ke(B
e$B$+$H;W$$$^$9!#$3$C$A$O8=:_$b=PMh$F$$$k$3$H$+$i!”$b$7$+$7$?$i>/$7$,$s$P$le(B
e$B$PBP1~$G$-$k$+$b!"$H$$$&$H$3$m$G$9!#e(B
model 1 e$B$O$3$l$^$G$Ne(B Ruby e$B$Ne(B thread e$B$H$[$\F1$8$He(B
e$B9M$($F$h$$$N$G$9$h$M!)e(B
e$B%3%s%Q%$%k;~$K!$;XDj$5$l$?e(B Thread model e$B$,$I$l$G$"$k$+$re(B
e$BH=Dj$9$k%^%/%mDj?t$OMQ0U$5$l$^$9$+!)e(B
e$B$G$-$l$P%9%/%j%W%H$+$i$be(B Thread model e$B$N3NG’$,$G$-$?J}$,e(B
e$B4r$7$$$N$G$9$,!%!%!%e(B
tcltklib e$B$N>l9g!$e(Bmodel 1
e$B$G$"$l$P=>Mh$N@oN,$r<h$i$M$P$J$i$J$$$7!$e(B
model 2 or 3 e$B$G$"$l$P?7$7$$@oN,$r$H$i$M$P$J$i$J$$$b$N$G!%e(B
- e$B%i%$%V%i%jB&$G:n@.$5$l$?e(B native thread e$B$,JBNsF0:n$r$7$h$&$H$9$k>l9g!$e(B
e$BCm0U$9$Y$-$3$H$O$I$N$h$&$J$3$H$G$7$g$&$+!)e(B
e$B!Je(BThread e$B%%V%8%'%/%H$H$7$F$N4IM}30$J$N$G!$e(BRuby e$BB&$N%j%=!<%9$Ke(B
e$B?($l$J$$8B$j$OLdBj$J$7$@$H$+!$Ak8}e(B thread e$B$r0l$DMQ0U$7$Fe(B
e$B$=$l$r7PM3$9$k$h$&$K$7$J$1$l$P$J$i$J$$$H$+!$e(B
e$B$3$l$3$l$KCm0U$7$J$$$H$$+$7$J$3$H$K$J$k$H$+!%!%!%!Ke(B
e$B!!e(BRubye$BB&%j%=!<%9$K?($l$J$$8B$j$OBg>fIW$@$H;W$$$^$9!#$?$H$($P!“C<E*$JNc$re(B
e$B8@$&$H!“4I3m30%M%$%F%#%V%9%l%C%I$N%^%7%s%9%?%C%/$Oe(BGCe$BBP>]$G$O$”$j$^$;$s!#e(B
e$BAk8}e(BRubye$B%9%l%C%I$r$R$H$DMQ0U$9$k$N$,3Z$J$N$G$O$J$$$+$J$!!”$H;W$$$^$9!#e(B
e$B$=$&$&$^$/JRIU$$$F$/$l$l$P$$$$$N$G$9$,e(B (^_^;e$B!$e(B
Tk e$BB&$+$i$N%3!<%k%P%C%/=hM}$NCf$G$5$i$Ke(B Tk
e$BB&$r8F$S=P$9%1!<%9$J$I$Ge(B
e$B$d$C$+$$$J$3$H$K$J$j$=$&$G$9!%e(B
Tk e$B$OFCDj$Ne(B native thread e$B$G$7$+2TF/$7$^$;$s$+$ie(B
(e$B$G$be(B Tcl e$B%Q!<%H$Oe(B native thread e$B$N@8@.$b$G$-$l$Pe(B
e$BJBNs<B9T$b9T$o$l$k2DG=@-$,$“$ke(B)e$B!$e(B
e$BJL$Ne(B native thread e$B$+$iA`:n$7$?$$>l9g$Oe(B
Tk e$B$Ne(B native thread e$B$Ne(B event queue
e$B$KAw$j9~$s$GBT$A$KF~$j!$e(B
e$B=hM}7k2L$rAw$jJV$7$F$b$i$C$?8e$KI|5”$J$I$H$9$k$3$H$K$J$k$H;W$$$^$9!%e(B
e$B$D$^$j!$e(BTk e$B$Ne(B native thread e$B$Ne(B event loop
e$B$NDd;_$O876X$G$9!%e(B
Tk e$B$Ne(B native thread e$B>e$G%3!<%k%P%C%/=hM}$,<B9T$5$l!$e(B
Ruby e$BB&$N=hM}$r4^$a$F0l$D$Ne(B native thread
e$B>e$G407k$9$l$P$$$$$N$G$9$,!$e(B
e$B$b$7%3!<%k%P%C%/=hM}$KJLe(B thread e$B$,4X$o$C$F!VBT$A!W$N>uBV$,e(B
e$B@8$8$F$7$^$&$H8G$^$C$F$7$^$$$^$9!%e(B
e$B$3$l$^$G$O%P%C%/%"%C%W$H$J$ke(B event loop e$B$rJLe(B thread
e$B$K:n$C$Fe(B
e$BBP=h$7$F$$$?$N$G$9$,!$:#2s$O$3$N<j$,;H$($J$$$N$Ge(B
e$B$I$&$7$h$&$+$J$!$H!%!%!%e(B
e$B$=$N>l9g!$%i%$%V%i%jB&$G$O$I$N=hM}$r8F$Y$PNI$$$N$G$7$g$&$+!)e(B
yarvcore.h e$B$re(B include e$B$7$Fe(B YARV_CHECK_INTS() e$B$r8F$V$H$$$&$3$H$Ke(B
e$B$J$k$N$G$7$g$&$+!)e(B
e$B!!%i%$%V%i%jB&$G!V%9%l%C%I@Z$jBX$($rH/@8$5$;$k$K$O!W2?$r8F$Y$P$$$$$+!“$Ge(B
e$B$9$+$M!#e(Brb_thread_schedule() e$B$r8F$V$H!”$H$j$“$($:@Z$jBX$($F$/$l$^$9!#e(B
e$B$,!“e(Bruby e$B%3!<%I$,Av$k%?%$%_%s%0$GDj4|E*$K@Z$jBX$(=hM}$,Av$k$N$G!”$”$s$^e(B
e$B$jI,MW$O$J$$$+$b$7$l$^$;$s!#%i%$%V%i%jB&$GD9;~4V%V%m%C%/$7$F$7$^$&:]$K$Oe(B
e$BI,MW$,$"$k$+$b$7$l$^$;$s!#e(B
Tk e$B$Ne(B event loop e$B$+$iB>$Ne(B thread
e$B$X$N@Z$jBX$($N$?$a$KI,MW$G$9!%e(B
mode 3 e$B$G$Oe(B OS e$B$Ne(B native thread
e$B@Z$jBX$($KG$$;$-$k$N$Ge(B
e$B%3%s%H%m!<%k$NI,MW$O$J$$e(B (e$B$G$-$J$$e(B)
e$B$H$$$&G’<1$G$$$$$N$G$9$h$M!)e(B
e$B5-210c$$$G$J$1$l$P!$=>Mh$Ne(B CHECK_INTS() e$B$Oe(B
e$BCY1d=hM}$5$l$F$$$?3d$j9~$=hM}$N<B9T$bF1;~$K9T$&$b$N$@$C$?$H;W$$$^$9$,!$e(B
YARV e$B$G$Oe(B rb_thread_schedule() e$B$N8F$S=P$7$@$1$G==J,$G!$e(B
e$B3d$j9~$=hM}$NJ}$O5$$K$7$J$/$F$bNI$$$N$G$7$g$&$+!)e(B
e$B!!@Z$jBX$($N%3%9%H$Oe(B OS e$B$d%7%9%F%`%=%U%H%&%'%“$K$h$j$^$9!#$D$^$j!”%M%$e(B
e$B%F%#%V%9%l%C%I=hM}5!9=$N%9%l%C%I@Z$jBX$($N@-G=$K$h$j$^$9!#7P83E*$K$O!"=>e(B
e$BMh$Ne(BRubye$B$N%9%l%C%I@Z$jBX$($h$j$b?oJ,$H9bB.$K$J$C$F$$$^$9!#e(B
e$B!!$H$/$K!“=>Mh$Ne(BRubye$B=hM}7O$O%9%?%C%/$N%3%T!<$,H/@8$9$k$?$a!”%9%?%C%/$N?<e(B
e$B$5$KHfNc$7$?@Z$jBX$(;~4V$,I,MW$G$7$?$,!"e(BYARVe$B$G$ODj?t;~4V$G%9%l%C%I@Z$jBXe(B
e$B$($r9T$&$3$H$,4|BT$G$-$^$9!#e(B
e$B=>Mh$[$I$K$O5$$K$9$kI,MW$O$J$$$1$l$I$b!$e(BThread model 2
e$B$N>l9g$O!$e(B
e$BG0$N$?$a$KD4@0%Q%i%a!<%?$OMQ0U$7$F$*$$$?J}$,NI$$$H$$$&$3$H$N$h$&$G$9$M!%e(B