ネットワークプログラミング相談室 Port26
■ このスレッドは過去ログ倉庫に格納されています
0504デフォルトの名無しさん
2010/06/17(木) 19:16:24Linux ではちょっとやっていたことがあります。
マルチスレッドで処理をしようと考えているのですが、Winsock のいくつかの関数がスレッドセーフなのかどうかがよくわかりません。
1つのスレッドで 1つの socket を扱っており、例えば recv の後で WSAGetLastError を呼び出しているのですが、
WSAGetLastError はスレッドセーフなのでしょうか。
スレッドセーフではない場合、どう対処するものなのでしょうか。
gethostbynameなどはスレッドセーフじゃないという情報があったので、mutex を使って排他しています。
しかしながら recv から WSAGetLastError までを排他すると、マルチスレッドのメリットが無くなってしまうんじゃないかと思う次第です
(この socket はブロックモードです)。
■ このスレッドは過去ログ倉庫に格納されています