ライブラリ
- ビルトイン (156)
-
irb
/ cmd / subirb (24) -
irb
/ extend-command (12) - open3 (24)
-
shell
/ process-controller (6) -
shell
/ system-command (6) - timeout (21)
クラス
-
IRB
:: ExtendCommand :: Kill (12) -
Shell
:: ProcessController (6) -
Shell
:: SystemCommand (6) - Thread (96)
モジュール
-
IRB
:: ExtendCommandBundle (12) - Open3 (24)
- Process (24)
- Signal (24)
- Timeout (21)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - Thread (12)
- WUNTRACED (12)
- backtrace (12)
- execute (12)
- exit (12)
-
handle
_ interrupt (12) -
install
_ extend _ commands (12) - irb (12)
-
irb
/ cmd / subirb (12) - kill (42)
-
kill
_ job (6) -
pipeline
_ start (24) -
rb
_ thread _ kill (12) -
rb
_ thread _ s _ kill (12) -
ruby 1
. 8 . 4 feature (12) - status (12)
- terminate (12)
- timeout (21)
- trap (24)
- value (12)
- スレッド (12)
- 終了処理 (12)
検索結果
先頭5件
-
Process
:: WUNTRACED -> Integer (6106.0) -
Process.#waitpid の第二引数に指定するフラグです。 このフラグが指定された場合、waitpid は停止しているだけで 終了していない子プロセスのプロセス ID も返すようになります。 trace されている子プロセスの ID は返しません。
...tpid の第二引数に指定するフラグです。
このフラグが指定された場合、waitpid は停止しているだけで
終了していない子プロセスのプロセス ID も返すようになります。
trace されている子プロセスの ID は返しません。
include P......rocess
pid = fork{ Process.kill('SIGSTOP', Process.pid) }
p pid #=> 4336
p waitpid2(pid, WUNTRACED) #=> [4336, #<Process::Status: pid=4336,stopped(SIGSTOP=19)>]
@see waitpid(2)... -
Thread
. handle _ interrupt(hash) { . . . } -> object (6106.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...を引数で指定した内容に変更してブロックを
実行します。
「割り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了さ......イミングを指定する
Symbol が値の Hash を指定します。
値の内容は以下のいずれかです。
: :immediate
すぐに割り込みます。
: :on_blocking
ブロッキング処理(後述)の間は割り込みが発生します。
: :never
ま......=== 使い方
例:Thread#raise 発生のタイミングを制御する例
th = Thread.new do
Thread.handle_interrupt(RuntimeError => :never) {
begin
# 安全にリソースの割り当てが可能
Thread.handle_interrupt(RuntimeError => :immediate) {
# ...... -
Thread (6036.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
...スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、......ad#join で待っている他の
スレッドがある場合、その待っているスレッドに対して、同じ例外が再度
発生します。
begin
t = Thread.new do
Thread.pass # メインスレッドが確実にjoinするように
raise "unhandled exception"
end......には ensure 節が実行されます。
これはスレッドが正常に終了する時はもちろんですが、他のスレッドから Thread#kill
などによって終了させられた時も同様に実行されます。
メインスレッドの終了時の詳細に関しては spec/termin... -
irb
/ cmd / subirb (6016.0) -
irb 中の irb、irb_jobs、irb_fg、irb_kill コマンドのための拡張を定義した サブライブラリです。
...irb 中の irb、irb_jobs、irb_fg、irb_kill コマンドのための拡張を定義した
サブライブラリです。
このライブラリで定義されているメソッドはユーザが直接使用するものではあ
りません。... -
IRB
:: ExtendCommand :: Kill # execute(*obj) -> object (6000.0) -
指定したサブ irb を停止します。
...サブ irb を停止します。
@param obj 停止するサブ irb を識別する以下のいずれかのオブジェクトを指定します。
* irb インタプリタ番号
* irb オブジェクト
* スレッド ID
* 各インタプリタの self (「irb(obj)」で起動した時の obj)... -
スレッド (3036.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
...スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装......ad#join で待っている他の
スレッドがある場合、その待っているスレッドに対して、同じ例外が再度
発生します。
begin
t = Thread.new do
Thread.pass # メインスレッドが確実にjoinするように
raise "unhandled exception"
end......には ensure 節が実行されます。
これはスレッドが正常に終了する時はもちろんですが、他のスレッドから Thread#kill
などによって終了させられた時も同様に実行されます。
メインスレッドの終了時の詳細に関しては spec/termin... -
Thread
# status -> String | false | nil (3024.0) -
生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず れかで返します。正常終了したスレッドに対して false、例外によ り終了したスレッドに対して nil を返します。
...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 #=> #<Thread:0x401b3678 aborting>
a.sta......tus #=> nil
b.status #=> "sleep"
c.status #=> false
d.status #=> "aborting"
Thread.current.status #=> "run"
@see Thread#alive?, Thread#stop?... -
Thread
# exit -> self (3007.0) -
スレッドの実行を終了させます。終了時に ensure 節が実行されます。
...ドの Thread#value の返り値は不定です。
自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0)
により終了します。
Kernel.#exit と違い例外 SystemExit を発生しません。
th1 = Thread.new do
begin......sleep 10
ensure
p "this will be displayed"
end
end
sleep 0.1
th1.kill
#=> "this will be displayed"
@see Kernel.#exit, Kernel.#exit!... -
Thread
# terminate -> self (3007.0) -
スレッドの実行を終了させます。終了時に ensure 節が実行されます。
...ドの Thread#value の返り値は不定です。
自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0)
により終了します。
Kernel.#exit と違い例外 SystemExit を発生しません。
th1 = Thread.new do
begin......sleep 10
ensure
p "this will be displayed"
end
end
sleep 0.1
th1.kill
#=> "this will be displayed"
@see Kernel.#exit, Kernel.#exit!...