るりまサーチ

最速Rubyリファレンスマニュアル検索!
99件ヒット [1-99件を表示] (0.118秒)

別のキーワード

  1. openssl p
  2. openssl p=
  3. fileutils mkdir_p
  4. matrix p
  5. rsa p

ライブラリ

クラス

キーワード

検索結果

Thread#raise(error_type, message, traceback) -> () (27244.0)

自身が表すスレッドで強制的に例外を発生させます。

...す。

@param error_type Kernel.#raise を参照してください。

@param message Kernel.#raise を参照してください。

@param traceback Kernel.#raise を参照してください。

Thread
.new {
sleep 1
Thread
.main.raise "foobar"
}

begin
sleep
rescue
p
$!, $@...

Thread#report_on_exception -> bool (15167.0)

真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

... Thread.report_on_exception です。

@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。

//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
a.report_on_exception...
...#<Thread:0x00007fc3f48c7908@(irb):1 run> terminated with exception (report_on_exception is true):
# Traceback (most recent call last):
# (irb):1:in `block in irb_binding': unhandled exception
# #<Thread:0x00007fc3f48c7908@(irb):1 dead>
b = Thread.new{ Thread.stop; raise }
b.report_on_except...
...ion = false
b.run # => #<Thread:0x00007fc3f48aefc0@(irb):4 dead>
//}

@see Thread.report_on_exception...

Thread#report_on_exception=(newstate) (15167.0)

真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

... Thread.report_on_exception です。

@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。

//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
a.report_on_exception...
...#<Thread:0x00007fc3f48c7908@(irb):1 run> terminated with exception (report_on_exception is true):
# Traceback (most recent call last):
# (irb):1:in `block in irb_binding': unhandled exception
# #<Thread:0x00007fc3f48c7908@(irb):1 dead>
b = Thread.new{ Thread.stop; raise }
b.report_on_except...
...ion = false
b.run # => #<Thread:0x00007fc3f48aefc0@(irb):4 dead>
//}

@see Thread.report_on_exception...

Thread#wakeup -> self (15131.0)

停止状態(stop)のスレッドを実行可能状態(run)にします。

...top)のスレッドを実行可能状態(run)にします。

@raise ThreadError 死んでいるスレッドに対して実行すると発生します。

//emlist[例][ruby]{
c = Thread.new { Thread.stop; puts "hey!" }
sleep 0.1 while c.status!='sleep'
c.wakeup
c.join
# => "hey!"
//}

@see Thread#r...
...un, Thread.stop...

Thread::Mutex#sleep(timeout = nil) -> Integer (9113.0)

与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。

...リープして、実行後にまたロックします。

@param timeout スリープする秒数を指定します。省略するとスリープし続けます。

@return スリープしていた秒数を返します。

@raise ThreadError 自身がカレントスレッドによってロックさ...
...グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。

//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
m.lock
m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false
//}...
...にまたロックします。

@param timeout スリープする秒数を指定します。省略するとスリープし続けます。

@return タイムアウトした時は nil を、それ以外はスリープしていた秒数を返します。

@raise ThreadError 自身がカレントスレ...

絞り込み条件を変える

ThreadGroup#add(thread) -> self (6184.0)

スレッド thread が属するグループを自身に変更します。

...ッド thread が属するグループを自身に変更します。

@param thread 自身に加えたいスレッドを指定します。

@raise ThreadError 自身が freeze されているか enclose されている場合に、発生します。また引数 thread が属する ThreadGroup が fre...
...ruby]{
p
uts "Initial group is #{ThreadGroup::Default.list}"
# => Initial group is [#<Thread:0x4a49168 run>]

tg = ThreadGroup.new
t1 = Thread.new { sleep }
t2 = Thread.new { sleep }
p
uts "t1 is #{t1}" # => t1 is #<Thread:0x50bef60>
p
uts "t2 is #{t2}" # => t2 is #<Thread:0x50beed0>
tg.add(t1)
p
uts "I...
...nitial group now #{ThreadGroup::Default.list}"
# => Initial group now [#<Thread:0x3039168 run>, #<Thread:0x50beed0 run>]
p
uts "tg group now #{tg.list}"
# => tg group now [#<Thread:0x50bef60 run>]
//}...

Mutex#sleep(timeout = nil) -> Integer (6113.0)

与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。

...リープして、実行後にまたロックします。

@param timeout スリープする秒数を指定します。省略するとスリープし続けます。

@return スリープしていた秒数を返します。

@raise ThreadError 自身がカレントスレッドによってロックさ...
...グナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。

//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
m.lock
m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false
//}...

Exception#backtrace_locations -> [Thread::Backtrace::Location] (3130.0)

バックトレース情報を返します。Exception#backtraceに似ていますが、 Thread::Backtrace::Location の配列を返す点が異なります。

...バックトレース情報を返します。Exception#backtraceに似ていますが、
Thread
::Backtrace::Location の配列を返す点が異なります。

現状では Exception#set_backtrace によって戻り値が変化する事はあり
ません。

//emlist[例: test.rb][ruby]{
require...
...day == 31
raise
"#{month} is not long month"
end

def get_exception
return begin
yield
rescue => e
e
end
end

e = get_exception { check_long_month(2) }
p
e.backtrace_locations
# => ["test.rb:4:in `check_long_month'", "test.rb:15:in `block in <main>'", "test.rb:9:in `get_exception'",...
..."test.rb:15:in `<main>'"]
//}

@see Exception#backtrace...

ThreadsWait#next_wait(nonblock = nil) -> Thread (3126.0)

指定したスレッドのどれかが終了するまで待ちます。

...まで待ちます。

@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。

@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。

@raise ErrNoFinishedThread nonblock がtrue でかつ...
...、キューが空の時、発生します。

#使用例
require 'thwait'

thread
s = []
2.times {|i|
thread
s << Thread.new { sleep i }
}

thall = ThreadsWait.new
thall.join_nowait(*threads)
until thall.empty?
th = thall.next_wait
p
th
end

@see Queue#pop...

Fiber#resume(*arg = nil) -> object (31.0)

自身が表すファイバーへコンテキストを切り替えます。 自身は resume を呼んだファイバーの子となります。

...んだファイバーの子となります。

ただし、Fiber#transfer を呼び出した後に resume を呼び出す事はでき
ません。

@param arg self が表すファイバーに渡したいオブジェクトを指定します。

@return コンテキストの切り替えの際に Fiber...
...の終了まで実行した場合はブロックの評価結果
を返します。

@raise FiberError 自身が既に終了している場合、コンテキストの切替が
Thread
クラスが表すスレッド間をまたがる場合、自身が resume を...
...また、Fiber#transfer を呼び出した後に resume を
呼び出した場合に発生します。

//emlist[例:][ruby]{

f = Fiber.new do
Fiber.yield(:hoge)
:fuga
end

p
f.resume() #=> :hoge
p
f.resume() #=> :fuga
p
f.resume() #=> FiberError: dead fiber called
//}...

絞り込み条件を変える

Fiber#transfer(*args) -> object (19.0)

自身が表すファイバーへコンテキストを切り替えます。

...す。

@param args メインファイバーから呼び出した Fiber#resume メソッドの返り値として渡したいオブジェクトを指定します。

@return コンテキスト切り替えの際に、Fiber#resume メソッドに与えられた引数を返します。

@raise FiberErro...
...r 自身が既に終了している場合、コンテキストの切り替えが Thread クラスが表すスレッド間をまたがる場合、
Fiber#resume を呼んだファイバーがその親か先祖である場合に発生します。

//emlist[例:][ruby]{
require 'fiber'...
...fr1 = Fiber.new do |v|
:fugafuga
end

fr2 = Fiber.new do |v|
fr1.transfer
:fuga
end

fr3 = Fiber.new do |v|
fr2.resume
:hoge
end

p
fr3.resume # => :fugafuga
//}...