クラス
-
File
:: Stat (1) - Thread (7)
-
Thread
:: Mutex (1) - ThreadsWait (1)
キーワード
- <=> (1)
-
NEWS for Ruby 2
. 0 . 0 (1) - Observable (1)
- backtrace (1)
-
backtrace
_ locations (2) - detach (1)
-
drb
/ gw (1) - fork (2)
- join (2)
-
next
_ wait (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 3 feature (1) - status (1)
- stop (1)
- timeout (2)
- tsort (1)
- wait (1)
- wait2 (1)
- waitpid (1)
- waitpid2 (1)
- 制御構造 (1)
検索結果
先頭5件
-
Thread
:: Mutex # sleep(timeout = nil) -> Integer (54679.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックされていない場合に発生します。
[注意] 2.0 以降ではスリープ中でも、シグナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
... -
ruby 1
. 6 feature (901.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
ruby 1.6 feature
ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン
になります。
((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) -> stable-snapshot
: 2003-01-22: errno
EAGAIN と EWOULDBLOCK が同じ値のシステムで、EWOULDBLOCK がなくなっ
ていま... -
Thread
# backtrace _ locations(start = 0 , length = nil) -> [Thread :: Backtrace :: Location] | nil (664.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得するフレームの個数を指定します。
@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。
Kernel.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。
//emlist[例][ruby]... -
Thread
# status -> String | false | nil (454.0) -
生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず れかで返します。正常終了したスレッドに対して false、例外によ り終了したスレッドに対して nil を返します。
生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず
れかで返します。正常終了したスレッドに対して false、例外によ
り終了したスレッドに対して nil を返します。
Thread#alive? が真を返すなら、このメソッドも真です。
例:
a = Thread.new { raise("die now") }
b = Thread.new { Thread.stop }
c = Thread.new { Thread.exit }
d = Thread.new { sleep }
d.kill ... -
Process
. # wait(pid = -1 , flags = 0) -> Integer | nil (415.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが 終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが
終了した時に pid を返します。
wait2, waitpid2 は子プロセスの pid と終了ステータスを表す
Process::Status オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
$? に終了した子プロセスの Process::Status オブジェクトがセットされます。
@param pid 子プロセスのプロセス ID を整数で指定します。
0 以上なら指定されたプロセス ID の子プロセスを待ちます。
0 な... -
Process
. # wait2(pid = -1 , flags = 0) -> [Integer , Process :: Status] | nil (415.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが 終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが
終了した時に pid を返します。
wait2, waitpid2 は子プロセスの pid と終了ステータスを表す
Process::Status オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
$? に終了した子プロセスの Process::Status オブジェクトがセットされます。
@param pid 子プロセスのプロセス ID を整数で指定します。
0 以上なら指定されたプロセス ID の子プロセスを待ちます。
0 な... -
Process
. # waitpid(pid = -1 , flags = 0) -> Integer | nil (415.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが 終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが
終了した時に pid を返します。
wait2, waitpid2 は子プロセスの pid と終了ステータスを表す
Process::Status オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
$? に終了した子プロセスの Process::Status オブジェクトがセットされます。
@param pid 子プロセスのプロセス ID を整数で指定します。
0 以上なら指定されたプロセス ID の子プロセスを待ちます。
0 な... -
Process
. # waitpid2(pid = -1 , flags = 0) -> [Integer , Process :: Status] | nil (415.0) -
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが 終了した時に pid を返します。 wait2, waitpid2 は子プロセスの pid と終了ステータスを表す Process::Status オブジェクトの配列を返します。 ノンブロッキングモードで子プロセスがまだ終了していない時には nil を返します。
pid で指定される特定の子プロセスの終了を待ち、そのプロセスが
終了した時に pid を返します。
wait2, waitpid2 は子プロセスの pid と終了ステータスを表す
Process::Status オブジェクトの配列を返します。
ノンブロッキングモードで子プロセスがまだ終了していない時には
nil を返します。
$? に終了した子プロセスの Process::Status オブジェクトがセットされます。
@param pid 子プロセスのプロセス ID を整数で指定します。
0 以上なら指定されたプロセス ID の子プロセスを待ちます。
0 な... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (394.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
ブロックを sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。
また sec が 0 もしくは nil のときは制限時間なしで
ブロックを実行します。
@param sec タイムアウトする時間を秒数で指定します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラー... -
Kernel
. # fork -> Integer | nil (391.0) -
fork(2) システムコールを使ってプロセスの複製を作 ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは nil を返します。ブロックを指定して呼び出した場合には、生成し た子プロセスでブロックを評価します。
fork(2) システムコールを使ってプロセスの複製を作
ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは
nil を返します。ブロックを指定して呼び出した場合には、生成し
た子プロセスでブロックを評価します。
fork 前に STDOUT と STDERR を IO#flush します。
@raise NotImplementedError 実行環境がこのメソッドに対応していないとき発生します。
//emlist[ブロックを指定しなかった場合][ruby]{
if child_pid = fork
puts "parent process. pid: #{Proc... -
Kernel
. # fork { . . . } -> Integer | nil (391.0) -
fork(2) システムコールを使ってプロセスの複製を作 ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは nil を返します。ブロックを指定して呼び出した場合には、生成し た子プロセスでブロックを評価します。
fork(2) システムコールを使ってプロセスの複製を作
ります。親プロセスでは子プロセスのプロセスIDを、子プロセスでは
nil を返します。ブロックを指定して呼び出した場合には、生成し
た子プロセスでブロックを評価します。
fork 前に STDOUT と STDERR を IO#flush します。
@raise NotImplementedError 実行環境がこのメソッドに対応していないとき発生します。
//emlist[ブロックを指定しなかった場合][ruby]{
if child_pid = fork
puts "parent process. pid: #{Proc... -
File
:: Stat # <=>(o) -> Integer | nil (388.0) -
ファイルの最終更新時刻を比較します。self が other よりも 新しければ正の数を、等しければ 0 を古ければ負の数を返します。 比較できない場合は nil を返します。
ファイルの最終更新時刻を比較します。self が other よりも
新しければ正の数を、等しければ 0 を古ければ負の数を返します。
比較できない場合は nil を返します。
@param o File::Stat のインスタンスを指定します。
//emlist[][ruby]{
require 'tempfile' # for Tempfile
fp1 = Tempfile.open("first")
fp1.print "古い方\n"
sleep(1)
fp2 = Tempfile.open("second")
fp2.print "新しい方\n"
p File::Stat.n... -
Thread
# backtrace -> [String] | nil (376.0) -
スレッドの現在のバックトレースを返します。
スレッドの現在のバックトレースを返します。
スレッドがすでに終了している場合は nil を返します。
//emlist[例][ruby]{
class C1
def m1
sleep 5
end
def m2
m1
end
end
th = Thread.new {C1.new.m2; Thread.stop}
th.backtrace
# => [
# [0] "(irb):3:in `sleep'",
# [1] "(irb):3:in `m1'",
# [2] "(irb):6:in `m2'",
# [3] ... -
Thread
# join(limit) -> self | nil (376.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。
@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = ... -
Thread
# backtrace _ locations(range) -> [Thread :: Backtrace :: Location] | nil (364.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得するフレームの個数を指定します。
@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。
Kernel.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。
//emlist[例][ruby]... -
制御構造 (343.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
制御構造
条件分岐:
* if
* unless
* case
繰り返し:
* while
* until
* for
* break
* next
* redo
* retry
例外処理:
* raise
* begin
その他:
* return
* BEGIN
* END
Rubyでは(Cなどとは異なり)制御構造は式であって、何らかの値を返すものが
あります(返さないものもあります。値を返さない式を代入式の右辺に置くと
syntax error になります)。
R... -
Thread
. stop -> nil (340.0) -
他のスレッドから Thread#run メソッドで再起動されるまで、カレ ントスレッドの実行を停止します。
他のスレッドから Thread#run メソッドで再起動されるまで、カレ
ントスレッドの実行を停止します。
//emlist[例][ruby]{
a = Thread.new { print "a"; Thread.stop; print "c" }
sleep 0.1 while a.status!='sleep'
print "b"
a.run
a.join
# => "abc"
//}
@see Thread#run, Thread#wakeup -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (322.0) -
指定したスレッドのどれかが終了するまで待ちます。
指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.n... -
ruby 1
. 8 . 3 feature (181.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
ruby 1.8.3 feature
*((<ruby 1.8 feature>))
*((<ruby 1.8.2 feature>))
ruby 1.8.2 から ruby 1.8.3 までの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ... -
NEWS for Ruby 2
. 0 . 0 (127.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
NEWS for Ruby 2.0.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 1.9.3 以降の変更
=== 言語仕様の変更
* キーワード引数を追加しました
* %i, %I をシンボルの配列作成のために追加しました。(%w, %W に似ています)
* デフォルトのソースエンコーディングを US-ASCI... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (94.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
ブロックを sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。
また sec が 0 もしくは nil のときは制限時間なしで
ブロックを実行します。
@param sec タイムアウトする時間を秒数で指定します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
@param message エラー... -
tsort (91.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
=== Example
//emlist[][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{1=>[2, 3], 2=>[3], 3=>[], 4=>[]}.tsort
#=> [3, 2, 1, 4]
{1=>[2], 2=>[3, 4... -
Thread
# join -> self (76.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。
@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = ... -
drb
/ gw (73.0) -
drb 通信を中継するゲートウェイ(DRb::GW)と、 中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、 および DRb::DRbObject への拡張が含まれています。
drb 通信を中継するゲートウェイ(DRb::GW)と、
中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、
および DRb::DRbObject への拡張が含まれています。
このライブラリを利用することで直接通信することが不可能であるような
2つのプロセスが中継プロセスを経て drb によりやりとりできるようになります。
drb による通信とは、オブジェクトをプロセス間でやりとりすること、
およびそのメソッドを呼び出すことです。
中継プロセスが保持している DRb::GW オブジェクトに
それ以外のプロセスがオブジェクトを登録したり、登録済みの
オブジェクトを取り出... -
Process
. # detach(pid) -> Thread (67.0) -
子プロセス pid の終了を監視するスレッドを生成して返します。 生成したスレッドは子プロセスが終了した後に終了ステータス (Process::Status) を返します。 指定した子プロセスが存在しなければ即座に nil で終了します。
子プロセス pid の終了を監視するスレッドを生成して返します。
生成したスレッドは子プロセスが終了した後に終了ステータス (Process::Status) を返します。
指定した子プロセスが存在しなければ即座に nil で終了します。
@param pid 子スレッドのプロセス ID を整数で指定します。
@raise NotImplementedError メソッドが現在のプラットフォームで実装されていない場合に発生します。
pid = fork {
# child
sleep 3
}
p pid # => 7762
th... -
Observable (37.0)
-
Observer パターンを提供するモジュールです。
Observer パターンを提供するモジュールです。
Mix-in により Observer パターンを提供します。
Observable モジュールを include したクラスは
Observable#changed メソッドにより更新フラグを立て、
Observable#notify_observers が呼び出されると
更新フラグが立っている場合はオブザーバに通知します
(オブザーバの update メソッドを呼び出す)。
Observable#notify_observers の引数は
そのままオブザーバの update メソッドに渡されます。
=== サンプルコード
re...