From: Tanaka Akira Date: 2002-05-31T15:25:04+09:00 Subject: [ruby-dev:17243] Re: race condition on Queue#pop? In article <200205300156.g4U1uxf15056@sharui.nakada.kanuma.tochigi.jp>, nobu.nakada@nifty.ne.jp writes: > Mutex#lock$B$HB7$($F$3$s$J$N$H$+!#(B > > def pop(non_block=false) > begin > while (Thread.critical = true; @que.empty?) > raise ThreadError, "queue empty" if non_block > @waiting.push Thread.current > Thread.stop > end > @que.shift > ensure > Thread.critical = false > end > end $B$3$l$OC;$/$F$$$$$G$9$M$'!#;W$$$D$-$^$;$s$G$7$?!#(B -- [$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira] $B!V$U$($m(B! $B$o$+$a$A$c$s:n@o$G$9$(C"=$B!W(B(Little Worker, $B7KM7@84](B)