るりまサーチ

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

別のキーワード

  1. drb thread
  2. thread join
  3. thread kill
  4. thread exit
  5. tracer get_thread_no

検索結果

<< < 1 2 3 >>

Monitor (18.0)

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

...定義したクラスです。

=== 例

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

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

# consumer
Thread
.start do
loop do
mon.synchronize do
empty_cond.wait_while { buf.empty? }
print buf.shift
end...
...'monitor'
mon = Monitor.new
mon.synchronize {
mon.synchronize {
}
}
//}

Thread
::Mutex ではデッドロックになります。

//emlist[Mutex でデッドロックになる例][ruby]{
mx = Mutex.new
mx.synchronize {
mx.synchronize {
}
}
# => deadlock; recursive locking (ThreadError)
//}...

MonitorMixin (18.0)

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

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

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

# consumer
Thread
.start do
loop do
buf.synchronize do # ロックする...
...に Object#extend を使って利用する場合は
自動的に初期化されます。

//emlist[extend する例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
//}

しかし、MonitorMixin をクラス定義の際に Module#include を使って
利用する場合は、initialize メ...

IRB::Context (12.0)

irb の設定を扱うためのクラスです。

...項目に設定された Proc オ
ブジェクトを実行します。ブロック引数には何も渡されません。

デフォルト値は [] です。

: IRB.conf[:CONTEXT_MODE]

新しいワークスペースを作成した時(サブ irb の起動や pushws した時)に、
ワーク...
...の Proc 内の
Binding を使用します。1 を指定した場合、Tempfile 中の
Binding を使用します。2 を指定した場合、Thread 内で読み込
んだファイル中の Binding を使用します。3 を指定した場合、
Object::TOPLEVEL_BINDING の関数中の Bind...

MonitorMixin#mon_enter -> () (12.0)

モニターをロックします。

...クできます。
既にモニターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。

Thread
::Mutex#lock に相当します。
Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである...
...

//emlist[例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
buf.mon_enter
buf.mon_enter
//}

Mutex#lock ではデッドロックが起きます。

//emlist[Mutex でデッドロックする例][ruby]{
m = Mutex.new
m.lock
m.lock # => deadlock; recursive locking (ThreadError)
//}...

NEWS for Ruby 2.7.0 (12.0)

NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...て導入されました。 14912

//emlist[][ruby]{
case [0, [1, 2, 3]]
in [a, [b, *c]]
p a #=> 0
p b #=> 1
p c #=> [2, 3]
end
//}

//emlist[][ruby]{
case {a: 0, b: 1}
in {a: 0, x: 1}
:unreachable
in {a: 0, b: var}
p var #=> 1
end
//}

//emlist[][ruby]{
case -1
in 0 then :unreachable
in 1...
...lat演算子(**)を足すことで警告を回避できます。
このように書けばRuby 3でも同じ意味で動きます。

//emlist[][ruby]{
def foo(key: 42); end; foo({key: 42}) # warned
def foo(**kw); end; foo({key: 42}) # warned
def foo(key: 42); end; foo(**{key: 42}) # O...
...ールしてください。
* CMath (cmath gem)
* Scanf (scanf gem)
* Shell (shell gem)
* Synchronizer (sync gem)
* ThreadsWait (thwait gem)
* E2MM (e2mmap gem)

* Proc
* Proc#to_sの形式が変更されました。 16101

* Range
* Range#minmaxが最...

絞り込み条件を変える

ruby 1.8.3 feature (12.0)

ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))

...ソッドを呼び出すことは、$SAFE レベル が 0 のとき
禁止されるようになりました。

$ cat mthd_taint.rb
th = Thread.new{
$SAFE = 3
class Hoge
def foo
puts "safe level: #{$SAFE}"
end
end
}
th.join
p $SAF...
....rb:11:in `foo': calling insecure method: foo (SecurityError)
from mthd_taint.rb:11

=== 2005-09-09
: String#* [ruby] [compat]
: String#[] [ruby] [compat]
空文字にも taint が伝播するようになりました。((<ruby-dev:26900>)) ((<ruby-dev:27121>))
$ ruby-1.8.2 -e 'p (...
...を呼んでしまうと空になるバグを修正しました。

$ ruby-1.8.2 -e '
d = Dir.new("/")
d.entries
p d.entries
'
[]


$ ruby-1.8.3 -e '
d = Dir.new("/")
d.entries
p d.entries
'
[".", "..", "dev", "home", "proc", "var", "tmp", "etc", "...
<< < 1 2 3 >>