diff options
author | Evan Shelhamer <shelhamer@imaginarynumber.net> | 2015-01-15 20:43:53 -0800 |
---|---|---|
committer | Evan Shelhamer <shelhamer@imaginarynumber.net> | 2015-01-15 20:43:53 -0800 |
commit | f84747113ff1ad0688f0b2d90369e883f05529e4 (patch) | |
tree | 65c9d86f6ff7afb927cfde79af341a9f7bd99d56 /src/caffe | |
parent | 119890974e10ec203b43008146dc49fd2e891533 (diff) | |
parent | 85477b75f7411efa3bf97c2c2cfec403205b7ce6 (diff) | |
download | caffeonacl-f84747113ff1ad0688f0b2d90369e883f05529e4.tar.gz caffeonacl-f84747113ff1ad0688f0b2d90369e883f05529e4.tar.bz2 caffeonacl-f84747113ff1ad0688f0b2d90369e883f05529e4.zip |
Merge pull request #1335 from ryotat/master
Fix leaking thread and groom internal thread implementation.
Diffstat (limited to 'src/caffe')
-rw-r--r-- | src/caffe/internal_thread.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/caffe/internal_thread.cpp b/src/caffe/internal_thread.cpp index d7b6ae20..58772e36 100644 --- a/src/caffe/internal_thread.cpp +++ b/src/caffe/internal_thread.cpp @@ -1,23 +1,23 @@ +#include <boost/thread.hpp> #include "caffe/internal_thread.hpp" -#include "caffe/util/thread.hpp" - namespace caffe { InternalThread::~InternalThread() { WaitForInternalThreadToExit(); - if (thread_ != NULL) { - delete thread_; - } } +bool InternalThread::is_started() const { + return thread_.get() != NULL && thread_->joinable(); +} + + bool InternalThread::StartInternalThread() { if (!WaitForInternalThreadToExit()) { return false; } try { - thread_ = new caffe::Thread - (&InternalThread::InternalThreadEntry, this); + thread_.reset(new boost::thread(&InternalThread::InternalThreadEntry, this)); } catch (...) { return false; } |