[#21296] test and sample directory — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
5 messages
2003/09/01
[#21325] illegal member in %w array — kkosako@...
%w配列で、継続行の先頭が空白のときに
5 messages
2003/09/04
[#21337] Re: illegal member in %w array — kkosako@...
> From: matz@ruby-lang.org [mailto:matz@ruby-lang.org]
12 messages
2003/09/04
[#21339] Re: illegal member in %w array
— matz@... (Yukihiro Matsumoto)
2003/09/04
まつもと ゆきひろです
[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
21 messages
2003/09/04
[#21346] Re: $SAFE=4 での autoload
— nobu.nakada@...
2003/09/04
なかだです。
[#21359] Re: $SAFE=4 での autoload
— Hidetoshi NAGAI <nagai@...>
2003/09/05
永井@知能.九工大です.
[#21361] Re: $SAFE=4 での autoload
— matz@... (Yukihiro Matsumoto)
2003/09/06
まつもと ゆきひろです
[#21363] Re: $SAFE=4 でのautoload
— nobu.nakada@...
2003/09/08
なかだです。
[#21364] Re: $SAFE=4 でのautoload
— matz@... (Yukihiro Matsumoto)
2003/09/08
まつもと ゆきひろです
[#21369] ext/openssl on mswin32 — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
4 messages
2003/09/10
[#21384] LocalJumpError -> ThreadError — Masatoshi Seki <m_seki@...>
12 messages
2003/09/16
[#21385] Re: LocalJumpError -> ThreadError
— matz@... (Yukihiro Matsumoto)
2003/09/16
まつもと ゆきひろです
[#21386] Re: LocalJumpError -> ThreadError
— Masatoshi Seki <m_seki@...>
2003/09/16
咳といいます。
[#21388] Re: LocalJumpError -> ThreadError
— matz@... (Yukihiro Matsumoto)
2003/09/17
まつもと ゆきひろです
[#21389] Re: LocalJumpError -> ThreadError
— m_seki@...
2003/09/17
[#21403] Building 1.8.0 on Solaris with Sun CC — Masahiro TANAKA <masa@...>
9 messages
2003/09/22
[#21405] Re: Building 1.8.0 on Solaris with Sun CC
— 桑村慎哉 <kuwa@...>
2003/09/25
桑村です。
[#21414] deferred finalizers — nobu.nakada@...
なかだです。
5 messages
2003/09/26
[#21415] 定数のスコープ — akira yamada <akira@...>
8 messages
2003/09/26
[#21416] warnの戻り値 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
8 messages
2003/09/26
[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
15 messages
2003/09/28
[#21422] Re: Makefile.inのlex.c
— matz@... (Yukihiro Matsumoto)
2003/09/28
まつもと ゆきひろです
[#21434] break from block yielded in until — Minero Aoki <aamine@...>
青木です。
13 messages
2003/09/29
[#21439] Re: break from block yielded in until
— Tietew <tietew-ml-ruby-dev@...>
2003/09/30
[#21442] Re: break from block yielded in until
— matz@... (Yukihiro Matsumoto)
2003/09/30
まつもと ゆきひろです
[ruby-dev:21401] Re: Per-Thread stdout が欲しい
From:
Kazuhiro NISHIYAMA <zn@...>
Date:
2003-09-18 14:42:08 UTC
List:
ruby-dev #21401
西山和広です。
In <20030918112530.71CA.TIETEW-ML-RUBY-DEV@tietew.net>
On Thu, 18 Sep 2003 11:39:18 +0900
Tietew <tietew-ml-ruby-dev@tietew.net> wrote:
> 表題の通りなんですが,現状プロセスグローバルな $std{in,out,err}
> の,スレッドローカルな奴が欲しいのです。背景としては,同じプロセ
> ス上で互いに無関係な ruby スクリプトがスレッドを分けた上で同時に
> 実行され得るアプリ(Becky! のプラグインなんですが)を開発してい
> て,$stdout を切り替えたときにそれが(一時的でも)全体に波及する
> のを防ぎたいという意図です。
グローバル変数なのでtrace_varを使えばrubyレベルで
なんとか出来そうです。
class PerThreadIO < Delegator
def initialize(symbol)
@default_io = eval(symbol.to_s)
super(@default_io)
@symbol = symbol
trace_var(symbol) {|newval|
Thread.current[symbol] = newval
eval %Q{#{symbol} = self}
}
end
def __getobj__
Thread.current[@symbol] || @default_io
end
end
if __FILE__ == $0
PerThreadStdin = PerThreadIO.new(:$stdin)
PerThreadStdout = PerThreadIO.new(:$stdout)
PerThreadStderr = PerThreadIO.new(:$stderr)
require 'stringio'
th1 = Thread.start do
str = ""
strio = StringIO.new(str)
$stdout = strio
$stdout.puts "th1: a"
sleep
$stdout.puts "th1: b"
str
end
$stdout.puts "main thread: a"
th1.wakeup
$stdout.puts "main thread: b"
$stderr.puts th1.value
end
--
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)
# http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/ruexli/ruexli/lib/perthreadio.rb