2011-02-02 6 views
0

私は関数getaddrinfoを使って、ドメイン名のOSアドレス= linux、言語= C++を取得します。私は、イーサネットケーブルが抜かれていると、その機能が30秒間スレッドをブロックできることに気付きました(機能は30秒以内に復帰しません)。それは私にとっては長すぎるものです。その関数のタイムアウトを設定したり、関数や他の考え方の実行を中断することは可能ですか?関数getaddrinfoの問題

おかげEB

答えて

2

のglibcは、非同期名前検索(例えば、ブロックしていない)を可能にするgetaddrinfo_aを、provies。

他の非同期リゾルバ、adnsc-aresがあります。または、別のスレッドでリゾルバを実行するだけでもかまいません。