[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)

先日、初めて投稿したつもりだったのですが間違えて

14 messages 1997/10/02

[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)

前田です。

13 messages 1997/10/10

[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/10/15

[#5056] RubyでOODB — hisanori@...

松尾です。

20 messages 1997/10/20
[#5057] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[#5065] Re: RubyでOODB — hisanori@... 1997/10/20

松尾です。

[#5066] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[ruby-list:5191] Is tcl/tk C library thread safe ? (Re: )

From: Yuji Shigehiro <sigehiro@...>
Date: 1997-10-31 02:52:56 UTC
List: ruby-list #5191
しげひろです.

> Date: Fri, 31 Oct 97 10:35:27 +0900
> Subject: [ruby-list:5190] Re: listbox:curselection
> Message-Id: <199710310148.KAA12567@picachu.netlab.co.jp>

> |> ちなみに1.1b0ではtk.rbは重弘さんのtcltklibを使ったものになり
> |> ます.
> |うれしいです. 今の tcltklib の仕様のままだと, もっと嬉しいです (ruby 
> |のバージョンアップの時に毎回, 手で ext/ にコピーしなくて済むので...)
> 仕様は一緒です.ですからtcltk.rbも動作します

感謝!!!! です.

> 英語のドキュメ
> ントがあるとすごーく嬉しいんですけど

検討課題ということで... (^^;

 ----

> |もし, tcl/tk の C ライブラリが再入可能(?)ならば, これは thread safe と
> |いって良いのでしょうか?
> 
> でしょうね.でもtclの問題は痛いですねえ.あれはインタプリタ
> というデータ構造を大域変数のように使っていますから,なかなか
> 再入可能にするのは難しいでしょう.

これはどういうことなのでしょう??

1. tcl, tk の C ライブラリでは, インタプリタはオブジェクト扱い(と言え
ば良いのか??) で, 複数生成することもできるようです. (実際, tcltklib に
つけた sample0.rb では, 複数生成しています.) ただし, もちろんイベント
ループ (Tk_MainLoop) 大域変数扱い(?) で一つだけです. これが問題なので
しょうか???

2. man Tcl_Eval すると,

During the processing of a Tcl command it is legal to make
nested  calls to evaluate other commands (this is how con-
ditionals, loops, and procedures are implemented).  

とあります. すなわち, 再入可能なのではないかと...

3. ruby の thread は, ruby インタプリタが制御を握っている時にしか,
task switch が起きないわけですよね. すなわち, tcl, tk ライブラリが制御
を握っている怪しげなタイミングで task switch が起きることはないと...


1. はどうでも良いと思いますが, 2. と 3. を考えると, tcl, tk の C ライ
ブラリは ruby の thread に対しては safe と言って良いと思うのですが.

---
重弘裕二
阪大情報処理教育センター (sigehiro@rd.ecip.osaka-u.ac.jp)
阪大工情報システム白川研 (sigehiro@ise.eng.osaka-u.ac.jp)

In This Thread