In message <199802281013.TAA17711 / tan.yuba.is.uec.ac.jp>
Kazuhisa YANAGAWA <katze / yuba.is.uec.ac.jp> writes:
>   Counting semaphore をちょっと作ってみました. 見ての通り, コードは 
>   Queue のパクリです (^^;

  なんてのを出しましたが, どうも怪しいバグがあります.

    silver% ruby -r semaphore -e 's=Semaphore.new;P(s); puts "a"'
    a

  ....ブロックしません. 何でサンプルの rw が動いていたのかと思ったら,

    silver% ruby -r semaphore -e 's=Semaphore.new; Thread.new{P(s);
    puts "a"}; sleep'

  ....ブロックします. セマフォを作ったスレッドはブロックしないようです.
  私は何か変なことをしてるんでしょうか? Queue のコードとほとんど変わら
  ないはずなのに....

  # 実際の所, Queue はほぼ counting semaphore そのものなのでわざわざ作
  # る必要は無い, という意見もある (^^;

======================================================================
  柳川 @ 情報システム学研究科 . 電気通信大学
  katze / yuba.is.uec.ac.jp                              March 2, 1998
What can't be cured must be endured.