• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Solaris10 スレッドでのタイマー割り込みについて)

Solaris10 スレッドでのタイマー割り込みについて

このQ&Aのポイント
  • Solaris10でスレッドごとのアラームのサポート中止が出ており、socket通信中のreadでタイマーを張りたい場合、どうすればいいのか。
  • 要件はSolaris10、スレッド、C言語、socket-readでの3秒でのタイムアウト実現。
  • Solaris/POSIXスレッドを使用している方はどのように対処しているか、その解決策を教えてほしい。タイマースレッドを作成するしかないのか。

質問者が選んだベストアンサー

  • ベストアンサー
  • masa19
  • ベストアンサー率75% (22/29)
回答No.1

Solaris8で、スレッドは使用していないのですが、 read()する前に、 select()で、I/Oの同期を確認し、 ここでタイムアウトを取得するように処理していました。

natsuyuu1507
質問者

お礼

ありがとうございます。そうですねselect()もMT-Safeなのでreadには効果ありですね。 どうもありがとうございます。 実は相手サーバが詰まっていた場合などでwrite()にもタイマーを張りたいのです。 select()やpoll()は受信可能になったときですよね。 alarm()のような使い方を想定しているのですが・・・。 select参考にさせていただきます。

natsuyuu1507
質問者

補足

select()でもwritefdに使えそうなのでいけそうですね。これを使ってみます。 ありがとうございました。