многопоточность — POCO C ++ Получение только одного уведомления, когда сокет читается?

Я сейчас пишу игровой сервер и вот моя функция onReadable:

void CSConnection::onReadable(const AutoPtr<ReadableNotification>& pNf)
{
try
{
char * rbuff = new char[128](); //allocate incoming packet memory
int n = _socket.receiveBytes(rbuff, 128);
if(n > 8)
{
WorkerThreadPool::getInstance().tp->start(*new LogicHandler(*this, rbuff));
}
else
{
delete rbuff;
delete this;
}
}
catch(Poco::Exception& exc)
{
app.logger().log(exc);
delete this;
}
}

Я попытался переместить пакет чтения в логический обработчик пула потоков, но уведомление называется умножением.

Есть ли способ получить только одно уведомление?
Потому что чтение в потоке медленнее и вызывает 5-9 раз onReadable.
Благодарю.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]