Exemplo n.º 1
0
void ThreadPool::ThreadRuntine(ThreadNode* thread_node) {
    ThreadRunner();

    MutexLocker locker(m_mutex_thread);
    m_working_threads.erase(thread_node);
    m_idle_threads.push_back(thread_node);
    m_cur_busy_thread_num--;
    m_cur_thread_num--;

    if (m_cur_thread_num == 0) {
        m_event_relase_all_task.Set();
    }
}
Exemplo n.º 2
0
void UserFacade::NewConnection(Socket&& sock) {
	CALL_ONCE_LAMBDA([this] { ThreadRunner(); });
	auto UserPtr = std::make_shared<User>(std::move(sock), "");
	m_unauthorizedUsers.push_back(UserPtr);
}