=begin
石塚圭樹 さんは書きました:
http://rubyforge.org/tracker/index.php?func=detail&aid=11680&group_id=426&atid=1700
その通りです.
チェックインの方お願いしてしまってよろしいでしょうか?
trunkにcommitしました。
ruby_1_8のほうはよく見るとFailを呼ぶ前に
Thread.critical=false
としているところがあるのですが、
Failの中ですべて
Thread.critical=false
にしてしまってもよいでしょうか。
もしそうだとすると、こうですかね?:
--- lib/sync.rb (リビジョン 19264)
+++ lib/sync.rb (作業コピー)
@@ -54,6 +54,7 @@
# exceptions
class Err < StandardError
def Err.Fail(*opt)
-
Thread.critical = false
fail self, sprintf(self::Message, *opt)
end
@@ -129,10 +130,10 @@
# locking methods.
def sync_try_lock(mode = EX)
- return unlock if sync_mode == UN
- ret = sync_try_lock_sub(sync_mode)
- ret = sync_try_lock_sub(mode)
Thread.critical = false
ret
end
@@ -156,7 +157,6 @@
def sync_unlock(m = EX)
Thread.critical = true
if sync_mode == UN
-
Thread.critical = false
Err::UnknownLocker.Fail(Thread.current)
end
@@ -165,7 +165,6 @@
runnable = false
case m
when UN
--
やまだ
=end