Исключение готовой задачи из порта завершения GetQueuedCompletionStatus

Извините, что то я не могу понять такой вещи:

1)Создаю клиентское приложение делающее запрос на удаленный сервер с помощью портов завершения Winscok.

2)Создал порт завершения.

3)Создал функцию для обработки порта завершения и запустил ее в потоках равное кол-ву физ.ядер.

4)Создал сокет.

6)Связал сокет с портом завершения.

//Пока все работает и вроде все понятно.

7)Теперь мне нужно "достать" из порта завершения сообщение о том, что моя задача по отправке моего сообщения на удаленный сервер - готова.

8)Это делается с помощью функции GetQueuedCompletionStatus запущенной в созданной функции и потоках из п.3.

И тут у меня вопрос: так как функция обработки очереди порта завершения запущена сразу в нескольких потоках, то получается, что функция GetQueuedCompletionStatus одновременно будет вызываться из разных потоков и вопрос не будет ли тут каких либо гонок данных ? Нужно ли вызов функции GetQueuedCompletionStatus держать под мьютексом ?


Ответы (0 шт):