ライブラリ
- ビルトイン (3)
-
io
/ wait (4) - monitor (3)
-
net
/ telnet (2) -
shell
/ builtin-command (1) -
shell
/ process-controller (4) -
shell
/ system-command (1) - socket (1)
- sync (4)
- thread (4)
- thwait (7)
- un (1)
クラス
- IO (6)
-
MonitorMixin
:: ConditionVariable (3) -
Net
:: Telnet (2) -
Process
:: Status (1) -
Shell
:: BuiltInCommand (1) -
Shell
:: ProcessController (4) -
Shell
:: SystemCommand (1) - Socket (1)
-
Thread
:: ConditionVariable (3) -
Thread
:: Queue (1) - ThreadsWait (7)
キーワード
- >> (1)
-
all
_ waits (1) - broadcast (1)
-
connect
_ nonblock (1) - empty? (1)
- finished? (1)
- join (1)
-
join
_ nowait (1) -
next
_ wait (1) -
num
_ waiting (1) -
read
_ nonblock (1) - signal (1)
-
sync
_ upgrade _ waiting (1) -
sync
_ upgrade _ waiting= (1) -
sync
_ waiting (1) -
sync
_ waiting= (1) - threads (1)
- wait? (2)
-
wait
_ all _ jobs _ execution (1) -
wait
_ readable (1) -
wait
_ until (1) -
wait
_ while (1) -
wait
_ writable (3) - waitfor (2)
-
waiting
_ job? (1) -
waiting
_ jobs (1) -
waiting
_ jobs _ exist? (1) -
write
_ nonblock (1)
検索結果
先頭5件
-
MonitorMixin
:: ConditionVariable # wait(timeout = nil) -> bool (54343.0) -
モニタのロックを開放し、現在のスレッドを停止します。
モニタのロックを開放し、現在のスレッドを停止します。
これを呼ぶスレッドはモニタのロックを保持している必要があります。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast
で起こされるまでスレッドは停止し続けます。
timeout を与えた場合は最大 timeout 秒まで停止した後にスレッドを
再開します。
実行を再開したスレッドはモニタのロックを保持した状態になります。
これによって危険領域(critical section)上で動作している
スレッドはただ一つになり... -
IO
# wait(timeout = nil) -> bool | self | nil (54328.0) -
self が読み込み可能になるまでブロックし、読み込み可能になったら 真値を返します。タイムアウト、もしくはEOFで それ以上読みこめない場合は偽の値を返します。
self が読み込み可能になるまでブロックし、読み込み可能になったら
真値を返します。タイムアウト、もしくはEOFで
それ以上読みこめない場合は偽の値を返します。
より詳しくは、一度ブロックしてから読み込み可能になった場合には
selfを返します。
内部のバッファにデータがある場合には
ブロックせずに true を返します。
内部のバッファとはRubyの処理系が保持管理している
バッファのことです。
つまり、読み込み可能である場合にはtrueを返す場合と
selfを返す場合があることに注意してください。
timeout を指定した場合は、指定秒数経過するまでブロックし、タ
イムアウトし... -
Thread
:: ConditionVariable # wait(mutex , timeout = nil) -> self (54307.0) -
mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。
mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。
@param mutex Thread::Mutex オブジェクトを指定します。
@param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略する... -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (27325.0) -
指定したスレッドのどれかが終了するまで待ちます。
指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.n... -
ThreadsWait
# all _ waits -> () (27304.0) -
指定されたスレッドすべてが終了するまで待ちます。 ブロックが与えられた場合、スレッド終了時にブロックを評価します。
指定されたスレッドすべてが終了するまで待ちます。
ブロックが与えられた場合、スレッド終了時にブロックを評価します。
使用例
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new(*threads)
thall.all_waits{|th|
printf("end %s\n", th.inspect)
}
# 出力例
#=> #<Thread... -
ThreadsWait
# join _ nowait(*threads) -> () (27304.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。 しかし、実際には終了をまちません。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
しかし、実際には終了をまちません。
@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join_nowait(*thr... -
IO
# wait _ readable(timeout = nil) -> bool | self | nil (18328.0) -
self が読み込み可能になるまでブロックし、読み込み可能になったら 真値を返します。タイムアウト、もしくはEOFで それ以上読みこめない場合は偽の値を返します。
self が読み込み可能になるまでブロックし、読み込み可能になったら
真値を返します。タイムアウト、もしくはEOFで
それ以上読みこめない場合は偽の値を返します。
より詳しくは、一度ブロックしてから読み込み可能になった場合には
selfを返します。
内部のバッファにデータがある場合には
ブロックせずに true を返します。
内部のバッファとはRubyの処理系が保持管理している
バッファのことです。
つまり、読み込み可能である場合にはtrueを返す場合と
selfを返す場合があることに注意してください。
timeout を指定した場合は、指定秒数経過するまでブロックし、タ
イムアウトし... -
IO
# wait _ writable -> self (18328.0) -
self が書き込み可能になるまでブロックし、書き込み可能になったら self を 返します。
self が書き込み可能になるまでブロックし、書き込み可能になったら self を
返します。
timeout を指定した場合は、指定秒数経過するまでブロックし、タイムアウト
した場合は nil を返します。
@param timeout タイムアウトまでの秒数を指定します。
@see IO#wait_readable -
IO
# wait _ writable(timeout) -> self | nil (18328.0) -
self が書き込み可能になるまでブロックし、書き込み可能になったら self を 返します。
self が書き込み可能になるまでブロックし、書き込み可能になったら self を
返します。
timeout を指定した場合は、指定秒数経過するまでブロックし、タイムアウト
した場合は nil を返します。
@param timeout タイムアウトまでの秒数を指定します。
@see IO#wait_readable -
Kernel
# wait _ writable -> () (18325.0) -
ファイルが書き込み可能になるまで待ちます。
ファイルが書き込み可能になるまで待ちます。
ruby -run -e wait_writable -- [OPTION] FILE
-n RETRY リトライ回数
-w SEC リトライごとに待つ秒数
-v 詳細表示 -
MonitorMixin
:: ConditionVariable # wait _ until { . . . } -> () (18325.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たすまで停止します。
モニタのロックを開放し、現在のスレッドを
ブロックで指定した条件を満たすまで停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@see MonitorMixin::ConditionVariable#wait -
MonitorMixin
:: ConditionVariable # wait _ while { . . . } -> () (18325.0) -
モニタのロックを開放し、現在のスレッドを ブロックで指定した条件を満たしている間停止します。
モニタのロックを開放し、現在のスレッドを
ブロックで指定した条件を満たしている間停止します。
MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。
@raise ThreadError ロックを持っていないスレッドがこのメソッドを呼びだした場合に発生します
@see MonitorMixin::ConditionV... -
Shell
:: BuiltInCommand # wait? -> false (18307.0) -
@todo
@todo -
Shell
:: ProcessController # wait _ all _ jobs _ execution -> () (18307.0) -
全てのジョブの実行が終わるまで待ちます。
全てのジョブの実行が終わるまで待ちます。 -
Shell
:: SystemCommand # wait? -> bool (18307.0) -
@todo
@todo -
Net
:: Telnet # waitfor(opt) -> String|nil (18304.0) -
指定した正規表現にマッチする文字列がホストから来るまでデータを読み込みます。
指定した正規表現にマッチする文字列がホストから来るまでデータを読み込みます。
opt に正規表現を指定した場合には、それにマッチするまで読みこみます。
opt にハッシュを指定した場合には、以下のオプションを指定できます。
"Match" 待ち合わせたい正規表現を指定します。
"Prompt" "Match"と同じです。"Match"が指定されなかった場合にのみ使われます。
"String" "Match"と似ていますが、与えられた String のインスタンスに
完全に一致するデータを待ち合わせます。"Match"も"Prompt"も指定されなかった
場合にのみ利用されます。
"T... -
Net
:: Telnet # waitfor(opt) {|buf| . . . } -> String|nil (18304.0) -
指定した正規表現にマッチする文字列がホストから来るまでデータを読み込みます。
指定した正規表現にマッチする文字列がホストから来るまでデータを読み込みます。
opt に正規表現を指定した場合には、それにマッチするまで読みこみます。
opt にハッシュを指定した場合には、以下のオプションを指定できます。
"Match" 待ち合わせたい正規表現を指定します。
"Prompt" "Match"と同じです。"Match"が指定されなかった場合にのみ使われます。
"String" "Match"と似ていますが、与えられた String のインスタンスに
完全に一致するデータを待ち合わせます。"Match"も"Prompt"も指定されなかった
場合にのみ利用されます。
"T... -
Shell
:: ProcessController # waiting _ job?(job) -> bool (18304.0) -
指定されたジョブが存在する場合は真を返します。 そうでない場合は偽を返します。
指定されたジョブが存在する場合は真を返します。
そうでない場合は偽を返します。
@param job ジョブを指定します。 -
Shell
:: ProcessController # waiting _ jobs -> Array (18304.0) -
待機中のジョブを返します。
待機中のジョブを返します。 -
Shell
:: ProcessController # waiting _ jobs _ exist? -> bool (18304.0) -
待機中のジョブが存在する場合は真を返します。 そうでない場合は偽を返します。
待機中のジョブが存在する場合は真を返します。
そうでない場合は偽を返します。 -
Sync
_ m # sync _ upgrade _ waiting -> [Thread] (18304.0) -
@todo
@todo -
Sync
_ m # sync _ upgrade _ waiting=(arr) (18304.0) -
@todo
@todo -
Sync
_ m # sync _ waiting -> [Thread] (18304.0) -
@todo
@todo -
Sync
_ m # sync _ waiting=(arr) (18304.0) -
@todo
@todo -
Thread
:: Queue # num _ waiting -> Integer (18304.0) -
キューを待っているスレッドの数を返します。
キューを待っているスレッドの数を返します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(1)
q.push(1)
t = Thread.new { q.push(2) }
sleep 0.05 until t.stop?
q.num_waiting # => 1
q.pop
t.join
//} -
ThreadsWait
# empty? -> bool (9004.0) -
同期されるスレッドが存在するならば true をかえします。
同期されるスレッドが存在するならば true をかえします。
使用例
require 'thwait'
threads = []
3.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads.empty? #=> true
thall.join(*threads)
p thall.threads.empty? #=> false -
ThreadsWait
# finished? -> bool (9004.0) -
すでに終了したスレッドが存在すれば true を返します。
すでに終了したスレッドが存在すれば true を返します。
使用例
require 'thwait'
threads = []
3.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new(*threads)
p thall.finished? #=> false
sleep 3
p thall.finished? #=> true -
ThreadsWait
# join(*threads) -> () (9004.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join(*threads)
p thall.threads
... -
ThreadsWait
# threads -> Array (9004.0) -
同期されるスレッドの一覧を配列で返します。
同期されるスレッドの一覧を配列で返します。
使用例
require 'thwait'
threads = []
3.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new(*threads)
p thall.threads
#=> [#<Thread:0x21750 sleep>, #<Thread:0x216c4 sleep>, #<Thread:0x21638 sleep>] -
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (325.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
write(2) が成功した場合、書き込んだ長さを返します。
EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は String#bytesize の
値より小さい可能性があります。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitWritable が Object#extend
されます。よって IO::Wai... -
Thread
:: ConditionVariable # broadcast -> self (70.0) -
状態変数を待っているスレッドをすべて再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
状態変数を待っているスレッドをすべて再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
... -
Thread
:: ConditionVariable # signal -> self (70.0) -
状態変数を待っているスレッドを1つ再開します。再開された スレッドは Thread::ConditionVariable#wait で指定した mutex のロックを試みます。
状態変数を待っているスレッドを1つ再開します。再開された
スレッドは Thread::ConditionVariable#wait
で指定した mutex のロックを試みます。
@return 常に self を返します。
//emlist[例][ruby]{
mutex = Mutex.new
cv = ConditionVariable.new
flg = true
3.times {
Thread.start {
mutex.synchronize {
puts "a1"
while (flg)
cv.wait(mutex)
... -
IO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (22.0) -
IO をノンブロッキングモードに設定し、 その後で read(2) システムコールにより 長さ maxlen を上限として読み込み、文字列として返します。 EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
IO をノンブロッキングモードに設定し、
その後で read(2) システムコールにより
長さ maxlen を上限として読み込み、文字列として返します。
EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitReadable が Object#extend
されます。
なお、バッファが空でない場合は、read_nonblock はバッファから読み込みます。この場合、read(2) システムコールは呼ばれません... -
Process
:: Status # >>(num) -> Integer (22.0) -
self.to_i >> num と同じです。
self.to_i >> num と同じです。
@param num 整数を指定します。
fork { exit 99 } #=> 26563
Process.wait #=> 26563
$?.to_i #=> 25344
$? >> 8 #=> 99 -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (22.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_nonblock をリトライするために使うことができます。
# Pull down Google's web page
require 'socket'
include Socket::Constants
...