On Wed, Nov 28, 2012 at 02:52:49PM -0800, Richard Oudkerk wrote:
On 28/11/2012 10:40pm, Trent Nelson wrote:
And compare that with the ultimate performance killer of a single thread that periodically calls GetQueuedCompletionStatus when it's ready to process some IO, and you can see how strange it would seem to take that approach. You're getting all the complexity of IOCP and overlapped IO with absolutely none of the benefits.
BTW, GetQueuedCompletionStatusEx() lets you dequeue an array of messages instead of working one at a time.
Right. The funny thing about that is it's only available in Vista onwards. And if you're on Vista onwards, the new thread pool APIs available, which negate the need to call GetQueuedCompletionStatus* at all. Trent.