Использую так называемый QThreadPool и закидываю в него указатель на QRunnable. Такой код:
void QThreadPoolServer::incomingConnection(qintptr handle)
{
QSocketRunnable *runnable = new QSocketRunnable(handle);
this->thread_pool->start(runnable);
}
Нужно ли "ручками" очищать QRunnable? Или метод QThreadPool::start() сам всё сделает?
В справке:
If auto-deletion is enabled, QThreadPool will automatically delete
this runnable after calling run(); otherwise, ownership remains with
the application programmer.
Что в переводе:
Если автоудаление включено (по умолчанию это именно так), то пул
потоков самостоятельно уничтожит объект QRunnable после выхода
контекста выполнения из метода QRunnable::run(). В обратном случае
ответственность за удаление объекта лежит на вызывающей стороне (на
разработчике приложения).
Предупреждение
Следует быть осторожным при использовании автоматического удаления объектов QRunnable и связки QThreadPool::releaseThread() / QThreadPool::reserveThread(). В отдельных случаях возможны утечки памяти.
Продвижение своими сайтами как стратегия роста и независимости