262件ヒット
[201-262件を表示]
(0.028秒)
ライブラリ
- ビルトイン (104)
-
irb
/ context (12) - monitor (36)
- thread (4)
- thwait (60)
クラス
- Thread (60)
- ThreadsWait (60)
モジュール
- Kernel (24)
- MonitorMixin (12)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - ConditionVariable (12)
- Context (12)
- Monitor (12)
- MonitorMixin (12)
-
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 1 . 0 (4) - SizedQueue (12)
- []= (12)
-
all
_ waits (18) -
caller
_ locations (24) - empty? (6)
- finished? (6)
- join (30)
-
join
_ nowait (6) -
mon
_ enter (12) - new (6)
-
next
_ wait (6) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 3 feature (12) - threads (6)
- value (12)
検索結果
-
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", "...