From: Masatoshi SEKI Date: 2000-10-06T01:29:36+09:00 Subject: [ruby-list:25329] Re: synchronization mechanism 咳といいます。 同期機構、何を悩んでいたかだんだん思い出してきました。 獲得したまま Thread が kill されてもちゃんと開放できる仕組みも ほしいっす。 primitiveにないと難しいと思うのですがどうなんだろう。 > コストの問題を解決できれば、Java風にprivitiveな同期機構を > Object#synchronizeで提供する、というのもありかなとかちょっと思い > ました。 > # オブジェクトの外に表を持つのかな。 ・Objectにどの Thread が lock しているか覚えてもらう ・待ちの表は struct thread のリストを使う というものであれば比較的安く実装できませんか ? struct thread { ... VALUE wchan; /* 待ちたい Object、待ってないときは Qundef */ ... } とか追加して…。 # 獲得している Object の Array も本当は欲しい。 # unlock で sleep している Thread 数回ループしなきゃならない…。 # あっ、Object に struct thread *waiting とかあればいい ?? > > MINIX のカーネル内のメッセージとかどうかなっと思ってましたが > > うまく考えがまとまらない…。 > > これってどんなものでしょうか? 普通のメッセージパッシングで、二人とも待ち合わせるやつです。 単純な機構。 # なんでこれが良いと思ったんだろう。MINIXがこれでできてたからかなぁ。