難しい・・・
以前から考えてた、
チャット系技術のためのマルチスレッドサーバープログラミングの実験してるんだが、
いろいろハマってるんだが、
タイムアウト処理でもうダメぽい・・・
参考にしたサーバープログラミング入門のサイトのサンプルだと、
forkのマルチプロセスかselectのシングルプロセスのコードのことをマルチスレッドのサーバーってことで紹介されてたんだが、
ちと違うと思うんだよね。
forkだと、プロセスが増えちゃうからダメ。
selectだと、
複数行のリクエスト読み込むときに処理できない可能性があるんじゃないかと思う。
で、
use threads;
な感じでやってんだが、
1日かけて色々実験してんだが、
スレッドだとSIG使わんほうがいいらしくて、
alarm使ったタイムアウトができない。
実際やったらうまく行かんかった。
普通にSIGやるとダメみたい。
スレッドのkill()もあるんだが期待する動作とは違う感じ。
threadsに、他のスレッドを停止するような機能もないぽい。
親スレッドから子スレッドくらい殺せてもいい気がするが、そういうことできないんだね。
タイムアウト処理ができたとしても、
他もいろいろ難しいわ。
ちと時間消費が大きすぎるんで、これ系の実験は、とりあえず終了かな。