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
            }
        }
    }
}