るりまサーチ

最速Rubyリファレンスマニュアル検索!
48件ヒット [1-48件を表示] (0.023秒)
トップページ > クエリ:signal[x] > クエリ:wait_while[x]

別のキーワード

  1. io/wait wait_writable
  2. io wait_writable
  3. conditionvariable wait
  4. _builtin wait
  5. un wait_writable

ライブラリ

キーワード

検索結果

MonitorMixin::ConditionVariable#wait_while { ... } -> () (18107.0)

モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たしている間停止します。

...開放し、現在のスレッドを
ブロックで指定した条件を満たしている間停止します。

MonitorMixin::ConditionVariable#signal
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果...

Monitor (12.0)

スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。

...er
Thread.start do
loop do
mon.synchronize do
empty_cond.wait_while { buf.empty? }
print buf.shift
end
end
end

# producer
while line = ARGF.gets
mon.synchronize do
buf.push(line)
empty_cond.signal
end
end
//}

2回ロックしてもデッドロックにならな...

MonitorMixin (12.0)

スレッドの同期機構としてのモニター機能を提供するモジュールです。

...であるかないかを通知する条件変数

# consumer
Thread.start do
loop do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待つ
print buf.shift # 配列が空でなくなった後ロックを...
...end
end

# producer
while line = ARGF.gets
buf.synchronize do # ロックする
buf.push(line) # 配列を変更(追加)
empty_cond.signal # 配列に要素が追加されたことを条件変数を通して通知
end # ここでロックを開放
end
//}

=== 初期化

MonitorMixin...

MonitorMixin::ConditionVariable#wait(timeout = nil) -> bool (12.0)

モニタのロックを開放し、現在のスレッドを停止します。

...止します。

これを呼ぶスレッドはモニタのロックを保持している必要があります。

MonitorMixin::ConditionVariable#signal
MonitorMixin::ConditionVariable#broadcast
で起こされるまでスレッドは停止し続けます。

timeout を与えた場合は最大...
...での秒数。指定しなかった場合はタイムアウトしません。

@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します

@see MonitorMixin::ConditionVariable#wait_while, MonitorMixin::ConditionVariable#wait_until...