原です。
わたなべさん、いつも rbdj, rbgw の作成ありがとう
ございます。
rbgw では thread と socket を組み合わせてもちゃん
と動いているので驚きました。
ところで、ブロックする例があったので、報告しておき
ます。たとえば lib/tsvr.rb などは動くのですが、次
のコードは rbgw では accept でブロックします。
-----^ test.rb
require "socket"
$quit = TRUE
$stdout.sync = TRUE
gs = TCPserver.open(80)
if $quit
Thread.start do
gets
exit
end
end
while TRUE
print "accepting...\n"
ns = gs.accept
print(ns, " is accepted\n")
Thread.start do
s = ns # save to dynamic variable
while s.gets
s.write($_)
print($_)
end
print(s, " is gone\n")
s.close
end
end
-----$ test.rb
BOW では動きます。