void Thread :: ShutdownInternalThread(bool waitForThread) { if (IsInternalThreadRunning()) { (void) SendMessageToInternalThread(MessageRef()); // a NULL message ref tells him to quit if (waitForThread) WaitForInternalThreadToExit(); } }
ConnectionIOServer::~ConnectionIOServer() { if (pipefd_[0] != -1 && pipefd_[1] != -1) { add_socket_to_IO_server(-1); WaitForInternalThreadToExit(); close(pipefd_[0]); close(pipefd_[1]); } pthread_mutex_destroy(&lock_); }
bool InternalThread::StartInternalThread() { if (!WaitForInternalThreadToExit()) { return false; } try { thread_.reset(new boost::thread(&InternalThread::InternalThreadEntry, this)); } catch (...) { return false; } return true; }
bool InternalThread::StartInternalThread() { if (!WaitForInternalThreadToExit()) { return false; } try { thread_ = new caffe::Thread (&InternalThread::InternalThreadEntry, this); } catch (...) { return false; } return true; }
bool InternalThread::StartInternalThread() { #if 0 if (!WaitForInternalThreadToExit()) { return false; } try { thread_.reset( new boost::thread(&InternalThread::InternalThreadEntry, this)); } catch (...) { return false; } #endif fprintf(stderr, "Unimplemented!\n"); exit(1); return true; }
void BasePrefetchingDataLayer<Dtype>::JoinPrefetchThread() { CHECK(WaitForInternalThreadToExit()) << "Thread joining failed"; }
void BasePrefetchingProducer::JoinPrefetchThread() { CHECK(WaitForInternalThreadToExit()) << "Thread joining failed"; }
InternalThread::~InternalThread() { WaitForInternalThreadToExit(); }
InternalThread::~InternalThread() { WaitForInternalThreadToExit(); if (thread_ != NULL) { delete thread_; } }