[#697] ++[Re: dylan [Re: swap values(Re: call by reference)]] —
けいじゅ@SHLジャパンです.
1 message
1996/10/01
[#869] Append Member — Kouki Higuchi <luke@...>
Please let me be a participate.
1 message
1996/10/20
[#895] sleep eternaly on BOW(Re: ruby 0.99.2-961023 available) — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/24
[#906] [REQ]Get Strings!<3> GETS, SUB — Shin-ichiro Hara <sinara@...>
原です。
5 messages
1996/10/27
[#907] [REQ]Get Strings!<4> SPLIT — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/27
[#920] bug report(each) — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
8 messages
1996/10/29
[#928] Re: hajimemashite — Itsuro Saito <saito@...>
斎藤@東大電子情報です.
9 messages
1996/10/29
[#938] ruby 0.99.3-961030 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
7 messages
1996/10/30
[#954] Rational — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
23 messages
1996/10/30
[#955] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/30
まつもと ゆきひろです.
[#968] Re: Rational
—
1996/10/31
けいじゅ@SHLジャパンです.
[#970] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/31
まつもと ゆきひろです.
[#956] Re: Rational[coerce(Re: ruby 0.99.3-961030 available) ] — Shin-ichiro Hara <sinara@...>
原です。
4 messages
1996/10/30
[#965] ruby-mode — Yasuo OHBA <jammy@...>
大庭@SHLJapanです.
6 messages
1996/10/31
[ruby-list:828] Re: BOW thread(Re: mech. of Thread (Re: httpd.rb))
From:
Shin-ichiro Hara <sinara@...>
Date:
1996-10-09 15:03:47 UTC
List:
ruby-list #828
原です。
> thread_schedule()関数にprintfをいれてデバッグするしかないん
> でしょうけど….変数nextの値が0なのが原因なんですよねえ.ど
> うしよう.
>
> まつもと ゆきひろ /:|)
eval.c にあっちこっち printf を入れて見たんですが、わかりませんでした。
どうも挙動不審です。
thread_schedule() の select の前後に
> Counter++;
> printf("%02d)BEFORE select: next = %d, n = %d\n", Counter, next, n);
n = select(max+1, &readfds, NULL, NULL, delay_ptr);
> printf("%02d)AFTER select: next = %d, n = %d\n", Counter, next, n);
をいれ、問題の Fatal のあとに
if (!next) {
Fatal("Thread: deadlock");
}
> printf("NEXT\n");
として
------------------^ tsvr.rb
require "socket"
require "thread"
gs = TCPserver.open(0)
addr = gs.addr
addr.shift
$stderr.printf("server is on %d\n", addr.join(":"))
while TRUE
ns = gs.accept
$stderr.print(ns, " is accepted\n")
Thread.start do
s = ns
while TRUE
sleep 1
end
$stderr.print(s, " is gone\n")
s.close
end
end
------------------$ tsvr.rb
を動かして、telnet でアクセスしたログです。
------------------^
pizzicato:~/ruby-0.99.2-961007# ./ruby tsvr.rb
server is on 2172
#<TCPsocket:0x9e1c4> is accepted
NEXT
01)BEFORE select: next = 488192, n = 10858100
01)AFTER select: next = 488192, n = 0
NEXT
02)BEFORE select: next = 0, n = 10855648
03)BEFORE select: next = 0, n = 48
03)AFTER select: next = 0, n = 0
04)BEFORE select: next = 488192, n = 0
04)AFTER select: next = 488192, n = 0
NEXT
04)AFTER select: next = 0, n = -1
05)BEFORE select: next = 0, n = -1
06)BEFORE select: next = 488192, n = 0
06)AFTER select: next = 488192, n = 0
NEXT
06)AFTER select: next = 0, n = -1
07)BEFORE select: next = 487680, n = -4
07)AFTER select: next = 487680, n = 0
NEXT
tsvr.rb:16:in `sleep': Thread: deadlock
------------------$
なんで select の前後で突然ジャンプするのだろう?(^^;
Shin-ichro Hara(Nagaoka Univ.of Tech.)