void TNonblockingServer::expireClose(boost::shared_ptr<Runnable> task) { TConnection* connection = static_cast<TConnection::Task*>(task.get())->getTConnection(); assert(connection && connection->getServer() && connection->getState() == APP_WAIT_TASK); connection->forceClose(); }
bool TNonblockingServer::drainPendingTask() { if (threadManager_) { stdcxx::shared_ptr<Runnable> task = threadManager_->removeNextPending(); if (task) { TConnection* connection = static_cast<TConnection::Task*>(task.get())->getTConnection(); assert(connection && connection->getServer() && connection->getState() == APP_WAIT_TASK); connection->forceClose(); return true; } } return false; }