Bug #554
closedSync_m#sync_try_lockの引数が無視されている
Description
=begin
こうだったりしないでしょうか?:
--- lib/sync.rb (revision 19272)
+++ lib/sync.rb (working copy)
@@ -126,9 +126,9 @@
# locking methods.
def sync_try_lock(mode = EX)
- return unlock if sync_mode == UN
- return unlock if mode == UN
@sync_mutex.synchronize do
-
ret = sync_try_lock_sub(sync_mode)
-
endret = sync_try_lock_sub(mode)
ret
end
ruby_1_8でも同じです。
=end
Updated by akira (akira yamada) about 16 years ago
=begin
http://rubyforge.org/tracker/index.php?func=detail&aid=11680&group_id=426&atid=1700
でした。
akira yamada さんは書きました:
ruby_1_8でも同じです。
--- lib/sync.rb (revision 19264)
+++ lib/sync.rb (working copy)
@@ -54,6 +54,7 @@
# exceptions
class Err < StandardError
def Err.Fail(*opt)
-
endThread.critical = false fail self, sprintf(self::Message, *opt)
@@ -129,10 +130,10 @@
# locking methods.
def sync_try_lock(mode = EX)
- return unlock if sync_mode == UN
-
return unlock if mode == UN
Thread.critical = true
- ret = sync_try_lock_sub(sync_mode)
- ret = sync_try_lock_sub(mode)
Thread.critical = false
ret
end
--
ay
=end
Updated by keiju (Keiju Ishitsuka) about 16 years ago
=begin
けいじゅ@いしつかです.
In [ruby-dev :36234 ] the message: "[ruby-dev:36234] Re: [Bug #554]
Sync_m#sync_try_lockの引数が無視されている ", on Sep/09 22:38(JST)
akira yamada / やまだあきら writes:
http://rubyforge.org/tracker/index.php?func=detail&aid=11680&group_id=426&atid=1700
でした。
akira yamada さんは書きました:
ruby_1_8でも同じです。
(中略)
その通りです.
チェックインの方お願いしてしまってよろしいでしょうか?
__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---
=end
Updated by akira (akira yamada) about 16 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
Applied in changeset r19280.
=end
Updated by akira (akira yamada) about 16 years ago
=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)
-
endThread.critical = false fail self, sprintf(self::Message, *opt)
@@ -129,10 +130,10 @@
# locking methods.
def sync_try_lock(mode = EX)
- return unlock if sync_mode == UN
-
return unlock if mode == UN
Thread.critical = true
- 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
-
endThread.critical = false Err::UnknownLocker.Fail(Thread.current)
@@ -165,7 +165,6 @@
runnable = false
case m
when UN
-
Thread.critical = false Err::UnknownLocker.Fail(Thread.current)
when EX
@@ -291,7 +290,6 @@
ret = false
end
else -
Thread.critical = false Err::LockModeFailer.Fail mode
end
return ret
--
やまだ
=end