Исключение готовой задачи из порта завершения GetQueuedCompletionStatus
Извините, что то я не могу понять такой вещи:
1)Создаю клиентское приложение делающее запрос на удаленный сервер с помощью портов завершения Winscok.
2)Создал порт завершения.
3)Создал функцию для обработки порта завершения и запустил ее в потоках равное кол-ву физ.ядер.
4)Создал сокет.
6)Связал сокет с портом завершения.
//Пока все работает и вроде все понятно.
7)Теперь мне нужно "достать" из порта завершения сообщение о том, что моя задача по отправке моего сообщения на удаленный сервер - готова.
8)Это делается с помощью функции GetQueuedCompletionStatus запущенной в созданной функции и потоках из п.3.
И тут у меня вопрос: так как функция обработки очереди порта завершения запущена сразу в нескольких потоках, то получается, что функция GetQueuedCompletionStatus одновременно будет вызываться из разных потоков и вопрос не будет ли тут каких либо гонок данных ? Нужно ли вызов функции GetQueuedCompletionStatus держать под мьютексом ?