[#17002] strict prototype for c++ — Takaaki Tateishi <ttate@...>
立石です.
At Fri, 3 May 2002 02:59:36 +0900,
[#17017] 標準添付案 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
At Wed, 8 May 2002 19:50:17 +0900,
At Wed, 8 May 2002 22:45:06 +0900,
At Thu, 9 May 2002 00:47:46 +0900,
田中です。一応 blade は見てます。
堀之内です。
堀之内です。
At Tue, 14 May 2002 14:45:28 +0900,
[#17031] double acosh — WATANABE Hirofumi <eban@...>
わたなべです。
なかだです。
わたなべです。
まつもと ゆきひろです
わたなべです。
[#17037] here document2 つで __LINE__ がずれる — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17053] socket in Win32 — nobu.nakada@...
なかだです。
[#17059] [PATCH] mswin32 configure — nobu.nakada@...
なかだです。
[#17060] rb_warn — Tadayoshi Funaba <tadf@...>
ふなばです。
[#17095] irb & jarh — Tanaka Akira <akr@...17n.org>
ふと、irb で jarh をいくつか試したのですが、うまく扱えないものがあるようです。
けいじゅ@日本ラショナルソフトウェアです.
In article <200205160811.RAA31441@ishitsuka.com>,
[#17112] [Cleanup] rb_thread_select() — nobu.nakada@...
なかだです。
[#17122] Array#bsearch — Beyond <beyond@...>
[#17128] Thread: deadlock trouble — nagai@...
永井@知能.九工大です.
At Fri, 17 May 2002 14:47:53 +0900,
[#17134] argv[0] — Tanaka Akira <akr@...17n.org>
ふと ruby インタプリタの C における argv[0] を知りたくなったんですが、
まつもと ゆきひろです
In article <1021723554.017958.5113.nullmailer@picachu.netlab.jp>,
In article <1021723554.017958.5113.nullmailer@picachu.netlab.jp>,
[#17144] Re: msvcrt — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
なかだです。
[#17158] else without rescue — nobu.nakada@...
なかだです。
[#17179] コマンドラインオプションの順序制約 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
[#17194] [RCR] Array#rotate{,!} — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#17208] Etc — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17223] race condition on Queue#pop? — Tanaka Akira <akr@...17n.org>
なんとなく thread.rb を眺めていて、Queue#pop に race condition がある
なかだです。
まつもと ゆきひろです
なかだです。
[#17228] Re: [ruby-list:35305] Re: ((1.2)..(3.4)).to_a — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
あづみです。
[#17238] Re: [ruby-list:35304] Re: ((1.2)..(3.4)).to_a — siena@... (Siena.)
Siena. です。
[ruby-dev:17128] Thread: deadlock trouble
永井@知能.九工大です.
以下に示すようなケースなんですが,どうにか改修する手はないものでしょうか?
問題は,Tk から呼び出された手続きで Thread を生成し,
その Thread の中から Tk を呼び出した際に生じます.
例えば,次を動かしたとします.
------------------------------------------------------
require 'tk'
b1 = TkButton.new(nil, 'text'=>"b1:{p 'b1'}", 'command'=>proc{p 'b1'}).pack
b2 = TkButton.new(nil, 'text'=>"b2:{Thread{p 'b2'}}",
'command'=>proc{Thread.new{p 'b2'}.value}).pack
TkButton.new(nil, 'text'=>'{b1.invoke}', 'command'=>proc{b1.invoke}).pack
TkButton.new(nil, 'text'=>'{b2.invoke}', 'command'=>proc{b2.invoke}).pack
TkButton.new(nil, 'text'=>'Thread{b1.invoke}',
'command'=>proc{Thread.new{b1.invoke}.value}).pack
TkButton.new(nil, 'text'=>'Thread{b2.invoke}',
'command'=>proc{Thread.new{b2.invoke}.value}).pack
Tk.mainloop
------------------------------------------------------
この例で上から 4 個のボタンについては期待通りに働きます.
ですが,下 2 個のボタンについては,例えば
------------------------------------------------------
deadlock 0x4018dc30: 2:0 - /usr/local/lib/ruby/1.6/tk.rb:559
deadlock 0x401305a0: 2:8 (main) - -:8
(eval):524:in `mainloop': -:8:in `value': Thread: deadlock (fatal)
from /usr/local/lib/ruby/1.6/tk.rb:524:in `mainloop'
from -:11
------------------------------------------------------
というように,deadlock を生じてしまい,ダメです.
# このメッセージは ruby 1.6.1 (2000-09-27) [i586-linux] のものですが,
# 新しいバージョンでも同様のエラーを生じます.
これは,
・リソースデータベースのサポートで,Thread を使って
外部定義手続きを特定のセーフレベルで実行したいけれど,
そうした手続きから他の widget をいじろうとすると deadlock で落ちる.
・Tcl_DoOneEvent を使った Tk.mainloop の代換品を検討していて
Thread{loop{TclTkLib.do_one_event(EventFlag::ALL | EventFlag::DONT_WAIT)}}
などとしてテストしてみたら,deadlock で落ちた.
というようなことをやっていて遭遇した状況です.
Thread 周りが理解できていないもので自力では対処できませんでした.
よい対策があればぜひ教えてください.
--
永井 秀利 (九工大 知能情報)
nagai@ai.kyutech.ac.jp