void TMultiplexingServer::deleteActionContext() { TActionWorker *worker = qobject_cast<TActionWorker *>(sender()); Q_CHECK_PTR(worker); deletePointer(worker); worker->deleteLater(); threadCounter.fetchAndAddOrdered(-1); }
void TEpollHttpSocket::releaseWorker() { tSystemDebug("TEpollHttpSocket::releaseWorker"); TActionWorker *worker = qobject_cast<TActionWorker *>(sender()); if (worker) { worker->deleteLater(); --myWorkerCounter; // count-down if (deleting.load()) { TEpollSocket::deleteLater(); } else { if (pollIn.exchange(false)) { TEpoll::instance()->modifyPoll(this, (EPOLLIN | EPOLLOUT | EPOLLET)); // reset } } } }