キーワード
- debug (11)
- drb (11)
-
drb
/ extservm (11) - irb (11)
- monitor (11)
-
net
/ imap (11) -
rinda
/ rinda (11) - thread (2)
検索結果
-
thread (6029.0)
-
スレッド間キューや状態変数 (condition variable) を提供するライブラリです。
...スレッド間キューや状態変数 (condition variable) を提供するライブラリです。
このライブラリは Thread を拡張します。rubyインタプリタを
デバッグオプション付き($DEBUGを真)で実行したときには、
Thread.abort_on_exception を true にし... -
monitor (81.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。
モニターとは、一つの Mutex とそれに関連付けられた複数の
条件変数から構成さ......れた、スレッドの同期機構です。
Mutex と 条件変数によって同等の機能を実現することは
可能ですが、モニタの利点はライブラリがその関連を保証
していることです。
monitor は以下のような Thread::Mutex としての機能も提供......します。
* lock の持ち主がスレッドである Mutex / 何度も lock できる Mutex
* lock したスレッドを Mutex 側が覚えていて
* そのスレッドがもう一度 lock しようとしてもブロックしない
* synchronize は lock していなかったら... -
debug (73.0)
-
Ruby デバッガです。Ruby スクリプトのソースコードデバッグに使用します。
...ithub.com/ruby/elisp にあるので、活用してください。
=== 使い方
$ ruby -rdebug foo.rb
または、Emacs から
M-x load-library rubydb3x.el
M-x rubydb
=== デバッグコマンド
以下は、デバッガで使用できるコマンド名とその用法の一覧です......出し関係が表示されます。引数を省略した
場合現在のモードを表示します。all を指定した場合、全てのスレッドに
対してモードの設定を変更します。
このコマンドの省略形は tr です。
: quit
スクリプトを中......: thread l[ist]
スレッドの一覧を表示します。
このコマンドの省略形は th です。
: thread c[ur[rent]]
現在のスレッドを表示します。
: thread <nnn>
: thread sw[itch] <nnn>
実行するスレッドを <nnn> に切替えます。
: thread stop... -
irb (73.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
...-d $DEBUG を true にする (ruby -d と同じ)
-w ruby -w と同じ
-W[level=2] ruby -W と同じ
-r library ruby -r と同じ
-I ruby -I と同じ
-U ruby -U と同じ
-E enc ruby -E と同じ
--ve......# サブirbの立ちあげ
irb#1(main):001:0> jobs # サブirbのリスト
#0->irb on main (#<Thread:0x400fb7e4> : stop)
#1->irb#1 on main (#<Thread:0x40125d64> : running)
nil
irb#1(main):002:0> fg 0 # jobのスイッチ
nil
irb(main):002:0>......します。
n は以下のいずれかの値で指定します。
//emlist{
* irb インタプリタ番号
* irb オブジェクト
* スレッド ID
* 各インタプリタの self (「irb(obj)」で起動した時の obj)
//}
: kill(n)
: irb_kill(n)
n で指定したサブ irb を... -
monitor (69.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。
モニターとは、一つの Mutex とそれに関連付けられた複数の
条件変数から構成さ......れた、スレッドの同期機構です。
Mutex と 条件変数によって同等の機能を実現することは
可能ですが、モニタの利点はライブラリがその関連を保証
していることです。
monitor は以下のような Mutex としての機能も提供します......。
* lock の持ち主がスレッドである Mutex / 何度も lock できる Mutex
* lock したスレッドを Mutex 側が覚えていて
* そのスレッドがもう一度 lock しようとしてもブロックしない
* synchronize は lock していなかったら通常ど... -
drb
/ extservm (25.0) -
DRb::ExtServManager を定義しているライブラリ。
...に指定する
s = DRb::ExtServManager.new
DRb.start_service("druby://localhost:10234", s)
# drb のプロセスの終了を待つ
DRb.thread.join
service.rb:
require 'drb/drb'
require 'drb/extserv'
# サービスを表すクラス
class Service
include DRb::DRbUndumped......クトを渡す
es = DRb::ExtServ.new(ARGV[1], ARGV[2], server)
# サーバスレッドの停止を待つ
DRb.thread.join
# サービスを DRb::ExtServ#stop_service で止めると、サーバスレッドが
# 終了するため、以下の行が実行される
puts "Stop #{ARGV[0]}"... -
net
/ imap (25.0) -
このライブラリは Internet Message Access Protocol (IMAP) の クライアントライブラリです。2060 を元に 実装されています。
...imap.expunge
=== スレッド安全性
Net::IMAP は並列実行をサポートしています。例として、
require 'net/imap'
imap = Net::IMAP.new("imap.foo.net", "imap2")
imap.authenticate("cram-md5", "bar", "password")
imap.select("inbox")
fetch_thread = Thread.start { imap.fet......ch(1..-1, "UID") }
search_result = imap.search(["BODY", "hello"])
fetch_result = fetch_thread.value
imap.disconnect
とすると FETCH コマンドと SEARCH コマンドを並列に実行します。
=== エラーについて
IMAP サーバは以下の3種類のエラーを送ります。... -
drb (13.0)
-
分散オブジェクトプログラミングのためのライブラリです。
...T=TimeServer.new
# サーバを起動する
DRb.start_service(SERVER_URI, FRONT_OBJECT, :safe_level => 1)
# DRb のスレッドが終了するのを待つ
DRb.thread.join
==== クライアント側コード
require 'drb/drb'
# 接続先の URI
SERVER_URI="druby://localhost:8787"... -
rinda
/ rinda (13.0) -
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
...すが、
適切な同期処理を実現することは困難をともないます。
このパターンにおいては、複数の並列単位(スレッド/プロセス)間の通信をすべて
タプルスペースという領域を経由して行います。これによって
プロセス間の......_ts.rb
require 'drb/drb'
require 'rinda/tuplespace'
uri = ARGV.shift
DRb.start_service(uri, Rinda::TupleSpace.new)
puts DRb.uri
DRb.thread.join
# rindas.rb
require 'drb/drb'
require 'rinda/rinda'
def do_it(v)
puts "do_it(#{v})"
v + v
end
uri = ARGV.shift ||...