[#23677] linux-gnu — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
15 messages
2004/06/10
[#23679] Re: linux-gnu
— "Akinori MUSHA" <knu@...>
2004/06/10
At Thu, 10 Jun 2004 23:24:04 +0900,
[#23680] Re: linux-gnu
— akira yamada / やまだあきら <akira@...>
2004/06/10
[#23681] Re: linux-gnu
— "Akinori MUSHA" <knu@...>
2004/06/11
At Fri, 11 Jun 2004 04:38:00 +0900,
[#23682] Re: linux-gnu
— matz@... (Yukihiro Matsumoto)
2004/06/11
まつもと ゆきひろです
[#23683] Re: linux-gnu
— WATANABE Hirofumi <eban@...>
2004/06/11
わたなべです。
[#23690] singleton class inherits the object's class. — nobu.nakada@...
なかだです。
2 messages
2004/06/15
[#23693] Shell.Application on WIN32OLE — Masahiro Kitajima <katonbo@...>
かとんぼです。
7 messages
2004/06/16
[#23694] WIN32OLEの日本語エラーメッセージが切り詰められる — Masahiro Kitajima <katonbo@...>
かとんぼです。
5 messages
2004/06/16
[#23697] define_method and $SAFE — nobu.nakada@...
なかだです。
9 messages
2004/06/16
[#23705] Re: define_method and $SAFE
— matz@... (Yukihiro Matsumoto)
2004/06/17
まつもと ゆきひろです
[#23706] Re: define_method and $SAFE
— nobu.nakada@...
2004/06/17
なかだです。
[#23700] Oniguruma segfaults on matching at long line? — nobu.nakada@...
なかだです。
1 message
2004/06/16
[#23704] [mswin32] printf の NaN, Inf 表示 — Masahiro Kitajima <katonbo@...>
かとんぼです。
5 messages
2004/06/17
[#23717] error at TestDRbMServer (test/drb) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。どうしても原因がわからないので、報告だけ・・・
18 messages
2004/06/19
[#23718] Re: error at TestDRbMServer (test/drb)
— nobu.nakada@...
2004/06/19
なかだです。
[#23719] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/19
山本です。
[#23720] Re: error at TestDRbMServer (test/drb)
— nobu.nakada@...
2004/06/19
なかだです。
[#23724] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/19
山本です。
[#23725] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/19
山本です。
[#23726] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/19
山本です。
[#23727] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/19
山本です。
[#23728] Re: error at TestDRbMServer (test/drb)
— "U.Nakamura" <usa@...>
2004/06/21
こんにちは、なかむら(う)です。
[#23729] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/21
山本です。
[#23733] Re: error at TestDRbMServer (test/drb)
— nobu.nakada@...
2004/06/21
なかだです。
[#23734] Re: error at TestDRbMServer (test/drb)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/06/21
山本です。
[#23730] Re test/ruby/test_pipe.rb fails in bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
5 messages
2004/06/21
[#23762] Ruby 1.8.2 to be released. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
40 messages
2004/06/23
[#23778] Re: Ruby 1.8.2 to be released.
— Kouhei Sutou <kou@...>
2004/06/24
須藤です.
[#23779] Re: Ruby 1.8.2 to be released.
— Kazuhiro NISHIYAMA <zn@...>
2004/06/24
西山和広です。
[#23795] Re: Ruby 1.8.2 to be released.
— matz@... (Yukihiro Matsumoto)
2004/06/25
まつもと ゆきひろです
[#23781] Thread critical でも timeout を使いたい — Tatsuki Sugiura <sugi@...>
杉浦と申します。こんにちは。
11 messages
2004/06/24
[#23782] Re: Thread critical でも timeout を使いたい
— matz@... (Yukihiro Matsumoto)
2004/06/24
まつもと ゆきひろです
[#23783] Re: Thread critical でも timeout を使いたい
— Tatsuki Sugiura <sugi@...>
2004/06/25
杉浦です。
[#23801] Re: Thread critical でも timeout を使いたい
— Tatsuki Sugiura <sugi@...>
2004/06/25
杉浦です。
[#23784] URI() — Tanaka Akira <akr@...17n.org>
前から思っていたのですが、URI.parse("http://...") を URI("http://...")
19 messages
2004/06/25
[#23786] Re: URI()
— MoonWolf <moonwolf@...>
2004/06/25
MoonWolfです。
[#23788] Re: URI()
— matz@... (Yukihiro Matsumoto)
2004/06/25
まつもと ゆきひろです
[#23789] Re: URI()
— MoonWolf <moonwolf@...>
2004/06/25
Yukihiro Matsumoto wrote:
[#23790] Re: URI()
— matz@... (Yukihiro Matsumoto)
2004/06/25
まつもと ゆきひろです
[#23791] Re: URI()
— MoonWolf <moonwolf@...>
2004/06/25
Yukihiro Matsumoto wrote:
[#23794] Re: URI()
— matz@... (Yukihiro Matsumoto)
2004/06/25
まつもと ゆきひろです
[#23796] Re: URI()
— MoonWolf <moonwolf@...>
2004/06/25
Yukihiro Matsumoto wrote:
[#23815] set_trace_func in safe mode — nobu.nakada@...
なかだです。
5 messages
2004/06/26
[ruby-dev:23802] 同一スレッドで Mutex の2重ロック
From:
Tatsuki Sugiura <sugi@...>
Date:
2004-06-25 18:57:34 UTC
List:
ruby-dev #23802
杉浦です。
またも細かい話で恐縮ですが……
Mutex#synchronize を同じスレッドからネストして呼び出すと
(当たり前ですが)デッドロックしてしまいます。
$ ruby -r thread -e '
m = Mutex.new
Thread.start{ m.synchronize{ m.synchronize{ } } }.join
'
deadlock 0x402abe64: sleep:- - /usr/lib/ruby/1.8/thread.rb:96
deadlock 0x402bf7c0: sleep:J(0x402abe64) (main) - -e:10
-e:10:in `join': Thread(0x402bf7c0): deadlock (fatal)
from -e:10
他にスレッドがある場合は、join を呼んだときに deadlock と言われるので
まだ良いのですが、メインスレッドしかない場合は
/usr/lib/ruby/1.8/thread.rb:96:in `stop': stopping only thread (ThreadError)
と言う例外があがってしまい、何のことだか分かりません。
と言うわけで、@locked フラグにロック元のスレッドを保持しておいて、
デッドロック状態になったら即座に例外をあげるパッチを書いてみました。
取り込んで貰うことは出来ますでしょうか?
--
Tatsuki Sugiura mailto:sugi@nemui.org
--- lib/thread.rb.orig 2004-06-24 02:58:29.000000000 +0900
+++ lib/thread.rb 2004-06-26 03:49:55.000000000 +0900
@@ -69,7 +69,7 @@
# Returns +true+ if this lock is currently held by some thread.
#
def locked?
- @locked
+ @locked && true
end
#
@@ -80,7 +80,7 @@
result = false
Thread.critical = true
unless @locked
- @locked = true
+ @locked = Thread.current
result = true
end
Thread.critical = false
@@ -92,10 +92,12 @@
#
def lock
while (Thread.critical = true; @locked)
+ @locked == Thread.current and
+ raise ThreadError, "deadlock; locked by same thread twice."
@waiting.push Thread.current
Thread.stop
end
- @locked = true
+ @locked = Thread.current
Thread.critical = false
self
end