Возникла проблема с освобождением памяти после разрыва соединения при использовании QsslSocket::deleteLater(). Я заменил вызов метода на delete socket и все стало ок, но в документации советуют использовать именно deleteLater(). Само соединение обрабатывается в методе run(). Обработчик наследуется от QRunnable. Собственно вопрос: почему не работает QsslSocket::deleteLater().
void RequestProcessor::run()
{
/*QSslSocket **/socket = new QSslSocket();
if (!socket) {
qDebug("not enough memory to create new QSslSocket");
return;
}
if (!socket->setSocketDescriptor(mSocketDescriptor))
{
qDebug("couldn't set socket descriptor");
CloseSocket(socket);
return;
}
socket->setProtocol(QSsl::AnyProtocol);
socket->setPeerVerifyMode(QSslSocket::VerifyNone);
startServerEncryption(socket);
socket->waitForReadyRead();
this->onReadyRead();
socket->waitForDisconnected();
socket->close();
//socket->deleteLater();
delete socket;
}