Правильная логика AcceptEx и CreateThreadpoolIo
От: Gorilla  
Дата: 17.08.11 13:51
Оценка:
Пишу высокопроизводительный сервер на Thread Pool API появившеся в Vista. Создаю сокет, ассоциирую с ним каллбек через CreateThreadpoolIo, делаю StartThreadpoolIo и вызываю AcceptEx чтобы принять соединение клиента.
AcceptEx может вернуть FALSE && WSAGetLastError() == ERROR_IO_PENDING — это обычная ситуация, при подключении клиента вызывается мой каллбек, также может вернуть FALSE && WSAGetLastError() != ERROR_IO_PENDING — значит произошла ошибка и надо вызвать CancelThreadpoolIo, мой каллбек не вызывается.
Вопрос: что делать если AcceptEx вернул TRUE? Вызывается ли каллбек, нужно ли делать CancelThreadpoolIo? MSDN не говорит насчет этого ничего определенного, получить такую ситуацию в своем коде мне не удалось, но обрабатывать ее надо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.