コード例 #1
0
ファイル: Device.cpp プロジェクト: apostroph/icub-main
 inline void joinThreads() const
 {
     while (!thr()->empty()) {
         driver->runningThreads.front()->join();
         unregisterThread(driver->runningThreads.front());
     }
 }
コード例 #2
0
void ThreadManager::join(std::thread& thread)
{
	if(thread.joinable())
	{
		thread.join();
		unregisterThread();
	}
}
コード例 #3
0
ThreadSGI::~ThreadSGI()
{
   ThreadManager::instance()->lock();
   {
      unregisterThread();
   }
   ThreadManager::instance()->unlock();
}
コード例 #4
0
ファイル: ThreadPosix.cpp プロジェクト: Michael-Lfx/vrjuggler
// Destructor.
ThreadPosix::~ThreadPosix()
{
   // TELL EVERYONE THAT WE'RE DEAD!!!!
   ThreadManager::instance()->lock();      // Lock manager
   {
      unregisterThread();                  // Finish thread deallocation
   }
   ThreadManager::instance()->unlock();
}
コード例 #5
0
ファイル: ClientManager.cpp プロジェクト: madderdin/radio
void ClientManager::handle(const std::shared_ptr<ClientsMap <int, ClientManager *>> &blockingMap) {
    registerThread(blockingMap);
    logger->log("Created");

    std::thread socketListenerThread(&SocketListener::handle, socketListener);
    std::thread senderThread(&Sender::handle, sender);

    socketListenerThread.join();
    sender->setConnectionClosed();
    senderThread.join();

    deleteClient();
    unregisterThread(blockingMap);
}