るりまサーチ (Ruby 2.6.0)

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

別のキーワード

  1. signal trap
  2. _builtin signal
  3. conditionvariable signal
  4. signal list
  5. monitor signal

検索結果

Signal (114001.0)

UNIX のシグナル関連の操作を行うモジュールです。

UNIX のシグナル関連の操作を行うモジュールです。

Signal.#trap(signal) { ... } -> String | Proc | nil (63571.0)

指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。

指定された割り込み signal に対するハンドラとして
command を登録します。
指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登録します。

trap は前回の trap で設定したハンドラを返します。
文字列を登録していた場合はそれを、
ブロックを登録していたらそれを Proc オブジェクトに変換して返します。
また何も登録されていないときも nil を返します。
ruby の仕組みの外でシグナルハンドラが登録された場合
(例えば拡張ライブラリが独自に sigaction を呼んだ場...

Signal.#trap(signal, command) -> String | Proc | nil (63571.0)

指定された割り込み signal に対するハンドラとして command を登録します。 指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。 ブロックを指定した場合にはブロックをハンドラとして登録します。

指定された割り込み signal に対するハンドラとして
command を登録します。
指定したシグナルが捕捉された時には例外が発生せず、代わりに command が実行されます。
ブロックを指定した場合にはブロックをハンドラとして登録します。

trap は前回の trap で設定したハンドラを返します。
文字列を登録していた場合はそれを、
ブロックを登録していたらそれを Proc オブジェクトに変換して返します。
また何も登録されていないときも nil を返します。
ruby の仕組みの外でシグナルハンドラが登録された場合
(例えば拡張ライブラリが独自に sigaction を呼んだ場...

Signal.#signame(signo) -> String | nil (63055.0)

引数で指定されたシグナル番号をシグナル名に変換して返します。 対応するシグナル番号が存在しない場合は nil を返します。

引数で指定されたシグナル番号をシグナル名に変換して返します。
対応するシグナル番号が存在しない場合は nil を返します。

Signal.trap("INT") { |signo| puts Signal.signame(signo) }
Process.kill("INT", 0)
# => INT

@see Signal.#list

Signal.#list -> Hash (63037.0)

シグナル名とシグナル番号を対応づけた Hash オブジェクトを返し ます。

シグナル名とシグナル番号を対応づけた Hash オブジェクトを返し
ます。

例:

p Signal.list # => {"WINCH"=>28, "PROF"=>27, ...}

@see Signal.#signame

絞り込み条件を変える

Thread::ConditionVariable#signal -> self (18322.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)
...

MonitorMixin::ConditionVariable#signal -> () (18304.0)

その条件変数で待っているスレッドがあれば実行を再開させます。

その条件変数で待っているスレッドがあれば実行を再開させます。

複数のスレッドが待っている場合には1つのスレッドのみ
実行を再開します。

@see MonitorMixin::ConditionVariable#broadcast

Process::Status#signaled? -> bool (18301.0)

プロセスがハンドラを定義していないシグナルを受けて終了した場合に真 を返します。

プロセスがハンドラを定義していないシグナルを受けて終了した場合に真
を返します。

Socket::Constants::MSG_NOSIGNAL -> Integer (18301.0)

Do not generate SIGPIPE

Do not generate SIGPIPE

BasicSocket#send, BasicSocket#sendmsg の
flags 引数に用います。

@see send(2linux), send(2freebsd)

Socket::MSG_NOSIGNAL -> Integer (18301.0)

Do not generate SIGPIPE

Do not generate SIGPIPE

BasicSocket#send, BasicSocket#sendmsg の
flags 引数に用います。

@see send(2linux), send(2freebsd)

絞り込み条件を変える

void rb_thread_signal_raise(char *sig) (18301.0)

SignalException (18001.0)

捕捉していないシグナルを受け取ったときに発生します。

捕捉していないシグナルを受け取ったときに発生します。

実際に発生したシグナル名は、
Exception#message から
「"SIG" + シグナル名」という形で得られます。

デフォルトの状態では、
以下のシグナルが SignalException を発生させます。

* SIGALRM
* SIGHUP
* SIGINT (※ただし以下参照)
* SIGQUIT
* SIGUSR1
* SIGUSR2
* SIGTERM

なお、SIGINT シグナルを受けた場合は SignalException の下位クラスである
Interrupt が発生します。

SignalException.new(sig_name) -> SignalException (9391.0)

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。

@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ
かで指定します。

@param sig_number シグナル番号を指定します。整数以外のオブジェクトを指
定した場合は to_int メソッドによる暗黙の型変換を試み
ます。

//emlist[例][rub...

SignalException.new(sig_number) -> SignalException (9391.0)

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。

@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ
かで指定します。

@param sig_number シグナル番号を指定します。整数以外のオブジェクトを指
定した場合は to_int メソッドによる暗黙の型変換を試み
ます。

//emlist[例][rub...

SignalException.new(sig_number, sig_name) -> SignalException (9391.0)

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

引数で指定したシグナルに関する SignalException オブジェクトを生成して返
します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり
ます。

@param sig_name シグナル名を Symbol オブジェクト、文字列のいずれ
かで指定します。

@param sig_number シグナル番号を指定します。整数以外のオブジェクトを指
定した場合は to_int メソッドによる暗黙の型変換を試み
ます。

//emlist[例][rub...

絞り込み条件を変える

Etc::SC_REALTIME_SIGNALS -> Integer (9301.0)

Etc.#sysconf の引数に指定します。

Etc.#sysconf の引数に指定します。

詳細は sysconf(3) を参照してください。

SignalException#signo -> Integer (9019.0)

self のシグナル番号を返します。

self のシグナル番号を返します。

//emlist[例][ruby]{
p Signal.signame(1) # => "HUP"
begin
Process.kill('HUP', Process.pid)
sleep
rescue SignalException => e
p e.signo # => 1
end
//}

SignalException#signm -> String (9001.0)

self.message のエイリアスです。

self.message のエイリアスです。

//emlist[例][ruby]{
begin
Process.kill('HUP', Process.pid)
sleep
rescue SignalException => e
puts e.signm # => SIGHUP
end
//}

Kernel.#trap(signal) { ... } -> String | Proc | nil (511.0)

signal で指定された割り込みにたいするハンドラとして command を登録します。Signal.#trapと同じです。

signal で指定された割り込みにたいするハンドラとして
command を登録します。Signal.#trapと同じです。

Signal.#trapの使用を推奨します。

@param signal Signal.#trap 参照
@param command Signal.#trap 参照


@see Signal.#trap,Signal

Kernel.#trap(signal, command) -> String | Proc | nil (511.0)

signal で指定された割り込みにたいするハンドラとして command を登録します。Signal.#trapと同じです。

signal で指定された割り込みにたいするハンドラとして
command を登録します。Signal.#trapと同じです。

Signal.#trapの使用を推奨します。

@param signal Signal.#trap 参照
@param command Signal.#trap 参照


@see Signal.#trap,Signal

絞り込み条件を変える

Process.#kill(signal, pid, *rest) -> Integer (370.0)

pid で指定されたプロセスにシグナルを送ります。signal はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。 全てのシグナル送信に成功した場合、指定した pid の総数を返します。

pid で指定されたプロセスにシグナルを送ります。signal
はシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。
全てのシグナル送信に成功した場合、指定した pid の総数を返します。

@param signal シグナルをシグナル番号(整数)かその名前(文字列またはSymbol)で指定します。負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、プロセスではなくプロセスグループにシグナルを送ります。

@param pid シグナルを送りたいプロセスのプロセス ID を整数で指定します。ただし、0 以下の場合は以下のような意味になります。

* 0 ...

Shell#kill(signal, job) -> Integer (322.0)

@todo

@todo

ジョブにシグナルを送ります。

@param signal

@param job

Shell::ProcessController#kill_job(signal, command) -> Integer (322.0)

指定されたコマンドにシグナルを送ります。

指定されたコマンドにシグナルを送ります。

@param signal シグナルを整数かその名前の文字列で指定します。
負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、
プロセスではなくプロセスグループにシグナルを送ります。

@param command コマンドを指定します。

@see Process.#kill

Shell::SystemCommand#kill(signal) -> Integer (322.0)

自身のプロセスにシグナルを送ります。

自身のプロセスにシグナルを送ります。

@param signal シグナルを整数かその名前の文字列で指定します。
負の値を持つシグナル(あるいはシグナル名の前に-)を指定すると、
プロセスではなくプロセスグループにシグナルを送ります。

@see Process.#kill

Process::Status (199.0)

プロセスの終了ステータスを表すクラスです。 メソッド Process.#wait2 などの返り値として使われます。

プロセスの終了ステータスを表すクラスです。
メソッド Process.#wait2 などの返り値として使われます。

=== 使用例

wait を使用した例

fork { exit }
Process.wait
case
when $?.signaled?
p "child #{$?.pid} was killed by signal #{$?.termsig}"
if $?.coredump? # システムがこのステータスをサポートしてなければ常にfalse
p "child #{$?.pid} dumped core."
end
...

絞り込み条件を変える

NEWS for Ruby 2.0.0 (73.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...

Thread::ConditionVariable (73.0)

スレッドの同期機構の一つである状態変数を実現するクラスです。

スレッドの同期機構の一つである状態変数を実現するクラスです。

以下も ConditionVariable を理解するのに参考になります。

https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF

=== Condition Variable とは

あるスレッド A が排他領域で動いていたとします。スレッド A は現在空いていない
リソースが必要になったので空くまで待つことにしたとします。これはうまくいきません。
なぜなら、スレッド A は排他領域で動いているわけですから、他のスレッドは動くことが
できません。リ...

Thread::ConditionVariable#wait(mutex, timeout = nil) -> self (67.0)

mutex のロックを解放し、カレントスレッドを停止します。 Thread::ConditionVariable#signalまたは、 Thread::ConditionVariable#broadcastで送られたシグナルを 受け取ると、mutexのロックを取得し、実行状態となります。

mutex のロックを解放し、カレントスレッドを停止します。
Thread::ConditionVariable#signalまたは、
Thread::ConditionVariable#broadcastで送られたシグナルを
受け取ると、mutexのロックを取得し、実行状態となります。

@param mutex Mutex オブジェクトを指定します。

@param timeout スリープする秒数を指定します。この場合はシグナルを受け取
らなかった場合でも指定した秒数が経過するとスリープを終了
します。省略するとスリープし続け...

1.6.8から1.8.0への変更点(まとめ) (19.0)

1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))

1.6.8から1.8.0への変更点(まとめ)
* ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>))
* ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>))
* ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>))...

Interrupt (19.0)

SIGINT シグナルを捕捉していないときに SIGINT シグナルを受け取ると発生します。 SIGINT 以外のシグナルを受信したときに発生する例外については SignalException を参照してください。

SIGINT シグナルを捕捉していないときに
SIGINT シグナルを受け取ると発生します。
SIGINT 以外のシグナルを受信したときに発生する例外については
SignalException を参照してください。

使用例

=begin
#SIGINTを捕捉したい場合
Signal.trap('INT'){
print "\nINTを捕捉した。\n"
exit 1
}
=end

begin
begin
print "z"
$stdout.flush
sleep(1)
end while true
...

絞り込み条件を変える

Monitor (19.0)

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

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

MonitorMixin を include し、いくつかの別名を定義したクラスです。

=== 例

//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'

buf = []
mon = Monitor.new
empty_cond = mon.new_cond

# consumer
Thread.start do
loop do
mon.synchronize do
empty...

MonitorMixin (19.0)

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

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

クラスに Module#include したり、オブジェクトに
Object#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。

=== 例

//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'

buf = []
buf.extend(MonitorMixin) # 配列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数

# consumer
Thread.start do
lo...

MonitorMixin::ConditionVariable#broadcast -> () (19.0)

その条件変数で 待っている全てのスレッドの実行を再開します。

その条件変数で
待っている全てのスレッドの実行を再開します。

@see MonitorMixin::ConditionVariable#signal

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

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

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

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

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

timeout を与えた場合は最大 timeout 秒まで停止した後にスレッドを
再開します。

実行を再開したスレッドはモニタのロックを保持した状態になります。
これによって危険領域(critical section)上で動作している
スレッドはただ一つになり...

MonitorMixin::ConditionVariable#wait_until { ... } -> () (19.0)

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

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

MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。

@see MonitorMixin::ConditionVariable#wait

絞り込み条件を変える

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

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

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

MonitorMixin::ConditionVariable#signal や
MonitorMixin::ConditionVariable#broadcast で
スレッドが起こされると、ロックを取得し、ブロックを評価し
その結果によってこのメソッドから抜け処理を継続するか
再びロックを開放しスレッドを停止するかを決めます。

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

Open3.#pipeline_r(*cmds) -> [IO, [Thread]] (19.0)

指定したコマンドのリストをパイプで繋いで順番に実行します。最後の コマンドの標準出力を受けとる事ができます。

指定したコマンドのリストをパイプで繋いで順番に実行します。最後の
コマンドの標準出力を受けとる事ができます。

@param cmds 実行するコマンドのリストを指定します。それぞれのコマンドは
以下のように String か Array で指定します。
commandline にはコマンド全体(例. "nroff -man")を表す
String を指定します。
options には Hash で指定します。
env には環境変数を Hash で指定します。
...

Open3.#pipeline_r(*cmds) {|last_stdout, wait_thrs| ... } -> () (19.0)

指定したコマンドのリストをパイプで繋いで順番に実行します。最後の コマンドの標準出力を受けとる事ができます。

指定したコマンドのリストをパイプで繋いで順番に実行します。最後の
コマンドの標準出力を受けとる事ができます。

@param cmds 実行するコマンドのリストを指定します。それぞれのコマンドは
以下のように String か Array で指定します。
commandline にはコマンド全体(例. "nroff -man")を表す
String を指定します。
options には Hash で指定します。
env には環境変数を Hash で指定します。
...

Open3.#pipeline_start(*cmds) -> [Thread] (19.0)

指定したコマンドのリストをパイプで繋いで順番に実行します。

指定したコマンドのリストをパイプで繋いで順番に実行します。

@param cmds 実行するコマンドのリストを指定します。それぞれのコマンドは
以下のように String か Array で指定します。
commandline にはコマンド全体(例. "nroff -man")を表す
String を指定します。
options には Hash で指定します。
env には環境変数を Hash で指定します。
cmdname にはコマンド名を表す ...

Open3.#pipeline_start(*cmds) {|wait_thrs| ... } -> () (19.0)

指定したコマンドのリストをパイプで繋いで順番に実行します。

指定したコマンドのリストをパイプで繋いで順番に実行します。

@param cmds 実行するコマンドのリストを指定します。それぞれのコマンドは
以下のように String か Array で指定します。
commandline にはコマンド全体(例. "nroff -man")を表す
String を指定します。
options には Hash で指定します。
env には環境変数を Hash で指定します。
cmdname にはコマンド名を表す ...

絞り込み条件を変える

PTY.#getpty(command) -> [IO, IO, Integer] (19.0)

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。


@param command 擬似 tty 上で実行するコマンド

@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ...

PTY.#getpty(command) {|read, write, pid| ... } -> nil (19.0)

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。


@param command 擬似 tty 上で実行するコマンド

@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ...

PTY.#spawn(command) -> [IO, IO, Integer] (19.0)

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。


@param command 擬似 tty 上で実行するコマンド

@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ...

PTY.#spawn(command) {|read, write, pid| ... } -> nil (19.0)

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。

プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。


@param command 擬似 tty 上で実行するコマンド

@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ...

Thread.handle_interrupt(hash) { ... } -> object (19.0)

スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。

スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを
実行します。

「割り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了されます)を意味します。

@param hash 例外クラスがキー、割り込みのタイミングを指定する
Symbol が値の Hash を指定します。
値の内容は以下のいずれかです。

: :immediate

すぐに割り込みます。

: :on_block...

絞り込み条件を変える

Thread::Mutex#lock -> self (19.0)

mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。

mutex オブジェクトをロックします。一度に一つのス
レッドだけが mutex をロックできます。既にロックされている mutex
に対してロックを行おうとしたスレッドは mutex のロックが解放さ
れるまで、実行が停止されます。

@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。


@see Thread::Mutex#unlock
...

Thread::Mutex#synchronize { ... } -> object (19.0)

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。

ブロックが最後に評価した値を返します。

@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。

//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # =>...

Thread::Mutex#unlock -> self (19.0)

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

@return self を返します。

例:

m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end

Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

m = Mutex.new
m.lock
Thread.new do
m.unlock # => Thr...

WEBrick::HTTPProxyServer (19.0)

プロクシの機能を提供するクラスです。CONNECT メソッドにも対応しています。

プロクシの機能を提供するクラスです。CONNECT メソッドにも対応しています。

* https://magazine.rubyist.net/articles/0002/0002-WEBrickProxy.html

以下は完全に動作するプロクシサーバの例です。

require 'webrick'
require 'webrick/httpproxy'

s = WEBrick::HTTPProxyServer.new(Port: 8080)
Signal.trap('INT') do
s.shutdown
end
s.start

WEBrick::HTTPServer (19.0)

HTTP サーバの機能を提供するクラスです。

HTTP サーバの機能を提供するクラスです。

以下は HTTP サーバとしてちゃんと動作する例です。

require 'webrick'
srv = WEBrick::HTTPServer.new({:DocumentRoot => '/home/username/public_html/',
:BindAddress => '127.0.0.1',
:Port => 10080})
srv.mount('/hoge.pl', WEBrick::HTTPSe...

絞り込み条件を変える

ruby 1.8.4 feature (19.0)

ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。

ruby 1.8.4 feature
ruby 1.8.4 での ruby 1.8.3 からの変更点です。

掲載方針

*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。

以下は各変更点に付けるべきタグです。

記号について(特に重要なものは大文字(主観))

# * カテゴリ
# * [ruby]: ruby インタプリタの変更
# * [api]: 拡張ライブラリ API
# * [lib]: ライブラリ
* レベル
* [bug]: バグ修正
* [new]: 追加され...