projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various thread cleanups.
[dcpomatic.git]
/
src
/
lib
/
job_manager.cc
diff --git
a/src/lib/job_manager.cc
b/src/lib/job_manager.cc
index 26e2d28970a71c0f5a9d90b7582ed2738fd2fca0..d95f95a2481ba860ae4ee0c304d3190cf09f53f9 100644
(file)
--- a/
src/lib/job_manager.cc
+++ b/
src/lib/job_manager.cc
@@
-46,7
+46,6
@@
JobManager* JobManager::_instance = 0;
JobManager::JobManager ()
: _terminate (false)
, _paused (false)
JobManager::JobManager ()
: _terminate (false)
, _paused (false)
- , _scheduler (0)
{
}
{
}
@@
-54,9
+53,9
@@
JobManager::JobManager ()
void
JobManager::start ()
{
void
JobManager::start ()
{
- _scheduler =
new boost::thread (boost::bind
(&JobManager::scheduler, this));
+ _scheduler =
boost::thread (boost::bind
(&JobManager::scheduler, this));
#ifdef DCPOMATIC_LINUX
#ifdef DCPOMATIC_LINUX
- pthread_setname_np (_scheduler
->
native_handle(), "job-scheduler");
+ pthread_setname_np (_scheduler
.
native_handle(), "job-scheduler");
#endif
}
#endif
}
@@
-72,16
+71,13
@@
JobManager::~JobManager ()
_empty_condition.notify_all ();
}
_empty_condition.notify_all ();
}
- if (_scheduler) {
- /* Ideally this would be a DCPOMATIC_ASSERT(_scheduler->joinable()) but we
- can't throw exceptions from a destructor.
- */
- if (_scheduler->joinable ()) {
- _scheduler->join ();
+ if (_scheduler.joinable()) {
+ try {
+ _scheduler.join();
+ } catch (...) {
+
}
}
}
}
-
- delete _scheduler;
}
shared_ptr<Job>
}
shared_ptr<Job>