ライブラリ
クラス
- Class (12)
- Data (3)
-
Digest
:: Base (12) -
File
:: Stat (24) - Hash (7)
- Monitor (18)
- Mutex (10)
- Object (12)
- OpenStruct (7)
- OptionParser (24)
- Shell (36)
-
Shell
:: CommandProcessor (12) -
Shell
:: Filter (12) - Socket (12)
- Struct (7)
- Thread (4)
-
Thread
:: Mutex (50) -
Thread
:: Queue (36) -
Thread
:: SizedQueue (36) - ThreadsWait (6)
- UDPSocket (12)
- UNIXServer (12)
モジュール
- Enumerable (12)
- MonitorMixin (12)
キーワード
-
accept
_ nonblock (12) -
block
_ length (12) - blockdev? (12)
- blocks (12)
- cd (6)
- chdir (6)
-
connect
_ nonblock (12) - deq (24)
-
each
_ entry (12) - enter (12)
- foreach (18)
-
ignore
_ deadlock= (4) - initialize (12)
- locked? (12)
-
mon
_ enter (18) -
next
_ wait (6) -
on
_ head (12) -
on
_ tail (12) - out (18)
- owned? (12)
- pop (24)
- pushd (6)
- pushdir (6)
-
recvfrom
_ nonblock (12) - shift (24)
- sleep (12)
-
to
_ h (24) -
try
_ lock (12) - unlock (12)
検索結果
先頭5件
-
Class
# new(*args , &block) -> object (18220.0) -
自身のインスタンスを生成して返します。 このメソッドの引数はブロック引数も含め Object#initialize に渡されます。
...も含め Object#initialize に渡されます。
new は Class#allocate でインスタンスを生成し、
Object#initialize で初期化を行います。
@param args Object#initialize に渡される引数を指定します。
@param block Object#initialize に渡されるブロックを指......定します。
//emlist[例][ruby]{
# Class クラスのインスタンス、C クラスを生成
C = Class.new # => C
# Class クラスのインスタンス、C クラスのインスタンスを生成
C.new # => #<C:0x00005623f8b4e458>
//}... -
Mutex
# unlock -> self (6131.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...utex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。
m = Mutex.new
m.lock
Thr......ead.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実... -
Thread
:: Mutex # unlock -> self (6131.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
...utex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。
m = Mutex.new
m.lock
Thr......ead.new do
m.unlock # => ThreadError
end.join
@raise ThreadError self がロックされていない場合や self をロックしたス
レッド以外から呼ばれた場合に発生します。
また、Signal.#trap に指定したハンドラ内で実... -
Mutex
# try _ lock -> bool (6120.0) -
mutex をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。
...mutex をロックしようとして、ロックが成功した場合、真を返します。
ロックできなかった場合にはブロックせず偽を返します。
//emlist[例][ruby]{
m = Mutex.new
m.try_lock # => true
m.try_lock # => false
//}... -
Thread
:: Mutex # try _ lock -> bool (6120.0) -
mutex をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。
...mutex をロックしようとして、ロックが成功した場合、真を返します。
ロックできなかった場合にはブロックせず偽を返します。
//emlist[例][ruby]{
m = Mutex.new
m.try_lock # => true
m.try_lock # => false
//}... -
Mutex
# locked? -> bool (6113.0) -
mutex がロックされている時、真を返します。
...mutex がロックされている時、真を返します。
//emlist[例][ruby]{
m = Mutex.new
m.locked? # => false
m.lock
m.locked? # => true
//}... -
Thread
:: Mutex # locked? -> bool (6113.0) -
mutex がロックされている時、真を返します。
...mutex がロックされている時、真を返します。
//emlist[例][ruby]{
m = Mutex.new
m.locked? # => false
m.lock
m.locked? # => true
//}... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (6113.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
...。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
require 'socket'
s1 = UDPSocket.new
s1.bind("127.0.0.1", 0)
s2 = UDPSocket.new
s2.bind("127.0.......0.1", 0)
s2.connect(*s1.addr.values_at(3,1))
s1.connect(*s2.addr.values_at(3,1))
s1.send "aaa", 0
begin # emulate blocking recvfrom
p s2.recvfrom_nonblock(10)
#=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]]
rescue IO::WaitReadable
IO.select([s2])
ret... -
Digest
:: Base # block _ length -> Integer (6107.0) -
ダイジェストのブロック長を取得します。 例えば、Digest::MD5であれば64、Digest::SHA512であれば128です。
...クラスにより、
それぞれの実装に適したものにオーバーライドされます。
例: Digest::MD、Digest::SHA1、Digest::SHA512のブロック長を順番に調べる。
require 'digest'
["MD5", "SHA1", "SHA512"].map{|a| Digest(a).new().block_length } # => [64, 128, 128]... -
File
:: Stat # blockdev? -> bool (6107.0) -
ブロックスペシャルファイルの時に真を返します。
...ブロックスペシャルファイルの時に真を返します。
//emlist[][ruby]{
Dir.glob("/dev/*") {|bd|
if File::Stat.new(bd).blockdev?
puts bd
end
}
#例
#...
#=> /dev/hda1
#=> /dev/hda3
#...
//}... -
File
:: Stat # blocks -> Integer (6107.0) -
割り当てられているブロック数を返します。
...割り当てられているブロック数を返します。
//emlist[][ruby]{
fs = File::Stat.new($0)
#例
p fs.blocks #=> nil
//}... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (6107.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
...connect_nonblock をリトライするために使うことができます。
# Pull down Google's web page
require 'socket'
include Socket::Constants
socket = Socket.new(AF_INET, SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(80, 'www.google.com')
begin # emulate blocking connect
s......ocket.connect_nonblock(sockaddr)
rescue IO::WaitWritable
IO.select(nil, [socket]) # wait 3-way handshake completion
begin
socket.connect_nonblock(sockaddr) # check connection failure
rescue Errno::EISCONN
end
end
socket.write("GET / HTTP/1.0\r\n\r\n")
results = socket.r...