--Multipart_Tue_Oct_14_17:18:36_2003-1
Content-Type: text/plain; charset=ISO-2022-JP

なかだです。

マルチスレッドのときに、Regexpリテラルのoオプションやrequire中
のsleepなどがbusy loopするので、Mutexを組込みにしてみました。

試しに、NODE_ONCEを直接指定する(@{...})も追加してみましたが…。


--Multipart_Tue_Oct_14_17:18:36_2003-1
Content-Type: application/octet-stream; type=gzip
Content-Disposition: attachment; filename="mutex.diff.gz"
Content-Transfer-Encoding: base64

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
x65bv1sRJFpLV0vPiSf3F/jTT66RbQAA

--Multipart_Tue_Oct_14_17:18:36_2003-1
Content-Type: text/plain; charset=ISO-2022-JP


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

--Multipart_Tue_Oct_14_17:18:36_2003-1--