Isは原子炉スタイルの操作でIOCP(またはその他のAPI)を使用することは可能でしょうか?

StackOverflow https://stackoverflow.com/questions/2530625

質問

あなたがスタイルを原子炉与えます(ない選択のようなIOCPのような)任意のスケーラブルなWin32 APIがあります ソケットの操作?私の知る限りIOCPを使用すると、完了した操作の通知を受け取ることができます データの読み書き(proactor)しかしように私は、オペレーションの原子炉のスタイルを探しています:Iを ソケットが読めるか、書き込み可能である場合に通知を取得する必要があります(リアクター)。

のepoll、kqueueの、/dev/pollに似た何か?

のWin32では、このようなAPIはありますか?もしそうならどこ、私はそれにマニュアルを見つけることができますか?

**明確化:**私はIOCPとしてスケーラブルなようである、または私は操作のような反応器内でIOCPを使用するための方法を探していたソケットのためのAPIのようなselect必要が

をさらに明確化:のIOCPを使用すると、特定の操作の完了時に通知を受け取ることができます。たとえばます:

WSARecv(buffer,...); // start reading
WSAWaitForMultipleEvents(...); // wait when read is done

だから私のget noticationの の操作が行われた後 - オペレーションの試験監督のスタイルを

は、私は必要なもののようなものです

WSARecv( NOTHING ); // start waiting for readability (not actual read)
WSAWaitForMultipleEvents(...); // wait until read would not block
// Now WSARecv would not block
WSARecv(buffer,...); // now actual non-blocking read

私はこれを行うことができますどのように?

役に立ちましたか?

解決 3

は不可能ます。

私は、原子炉のスタイルの操作を持っているとIOCPを使用しないBoost.Asioソースをチェックしました。すべての反応器形式の操作のためselect有する別個のスレッドがIOCPの代わりに使用されます。

scroll top