summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConlain Kelly <conlain.k@gmail.com>2018-07-24 14:31:17 -0400
committerConlain Kelly <conlain.k@gmail.com>2018-07-24 14:31:17 -0400
commitf8a549cdf0e1b52ef66f1ca703a1d07d4c99f645 (patch)
tree0cd25eacb84259b92556113d2dec40a7f5d8de83
parent01a61648226fd0df15188bc4bdd60d1f4a6f0709 (diff)
downloadsdl_core-feature/boost_lock_implementation.tar.gz
Remove exception-handling code, extra constructorsfeature/boost_lock_implementation
Note that locks will now crash on error via an uncaught Boost exception This is because SDL prohibits exceptions, but Boost uses them internally
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc1
-rw-r--r--src/components/connection_handler/src/connection.cc1
-rw-r--r--src/components/utils/src/conditional_variable_boost.cc87
-rw-r--r--src/components/utils/src/lock_boost.cc16
4 files changed, 36 insertions, 69 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index a0be3d1939..9b936bdf41 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -166,7 +166,6 @@ ApplicationManagerImpl::ApplicationManagerImpl(
, resume_ctrl_(new resumption::ResumeCtrlImpl(*this))
, navi_close_app_timeout_(am_settings.stop_streaming_timeout())
, navi_end_stream_timeout_(am_settings.stop_streaming_timeout())
- , stopping_application_mng_lock_()
, state_ctrl_(*this)
, application_list_update_timer_(
"AM ListUpdater",
diff --git a/src/components/connection_handler/src/connection.cc b/src/components/connection_handler/src/connection.cc
index 08b37b9026..5a35919c6c 100644
--- a/src/components/connection_handler/src/connection.cc
+++ b/src/components/connection_handler/src/connection.cc
@@ -81,7 +81,6 @@ Connection::Connection(ConnectionHandle connection_handle,
: connection_handler_(connection_handler)
, connection_handle_(connection_handle)
, connection_device_handle_(connection_device_handle)
- , session_map_lock_()
, primary_connection_handle_(0)
, heartbeat_timeout_(heartbeat_timeout) {
LOG4CXX_AUTO_TRACE(logger_);
diff --git a/src/components/utils/src/conditional_variable_boost.cc b/src/components/utils/src/conditional_variable_boost.cc
index f1c23c13a4..c07b8284ea 100644
--- a/src/components/utils/src/conditional_variable_boost.cc
+++ b/src/components/utils/src/conditional_variable_boost.cc
@@ -64,29 +64,18 @@ bool ConditionalVariable::Wait(BaseLock& lock) {
// superclass
lock.AssertTakenAndMarkFree();
- try {
- // What kind of lock are we ?
- if (Lock* test_lock = dynamic_cast<Lock*>(&lock)) {
- // Regular lock
- cond_var_.wait<boost::mutex>(test_lock->mutex_);
- } else if (RecursiveLock* test_rec_lock =
- dynamic_cast<RecursiveLock*>(&lock)) {
- // Recursive lock
- cond_var_.wait<boost::recursive_mutex>(test_rec_lock->mutex_);
- } else {
- // unknown
- lock.AssertFreeAndMarkTaken();
-
- LOG4CXX_ERROR(logger_, "Unknown lock type!");
- return false;
- }
- } catch (std::exception err) {
- lock.AssertFreeAndMarkTaken();
-
- LOG4CXX_ERROR(
- logger_,
- "Failed to wait for conditional variable, exception:" << err.what());
- return false;
+ // What kind of lock are we ?
+ if (Lock* test_lock = dynamic_cast<Lock*>(&lock)) {
+ // Regular lock
+ cond_var_.wait<boost::mutex>(test_lock->mutex_);
+ } else if (RecursiveLock* test_rec_lock =
+ dynamic_cast<RecursiveLock*>(&lock)) {
+ // Recursive lock
+ cond_var_.wait<boost::recursive_mutex>(test_rec_lock->mutex_);
+ } else {
+ // unknown, give up the lock
+ LOG4CXX_ERROR(logger_, "Unknown lock type!");
+ NOTREACHED();
}
lock.AssertFreeAndMarkTaken();
@@ -104,36 +93,28 @@ ConditionalVariable::WaitStatus ConditionalVariable::WaitFor(
WaitStatus wait_status = kNoTimeout;
lock.AssertTakenAndMarkFree();
- try {
- bool timeout = true;
-
- // What kind of lock are we ?
- if (Lock* test_lock = dynamic_cast<Lock*>(&lock)) {
- // Regular lock
- // cond_var_.wait<boost::mutex>(test_lock->mutex_);
- timeout = cond_var_.timed_wait<boost::mutex>(
- test_lock->mutex_, boost::posix_time::milliseconds(milliseconds));
- } else if (RecursiveLock* test_rec_lock =
- dynamic_cast<RecursiveLock*>(&lock)) {
- // Recursive lock
- // cond_var_.wait<boost::recursive_mutex>(test_rec_lock->mutex_);
- timeout = cond_var_.timed_wait<boost::recursive_mutex>(
- test_rec_lock->mutex_, boost::posix_time::milliseconds(milliseconds));
- } else {
- // unknown
- LOG4CXX_ERROR(logger_, "Unknown lock type!");
- }
-
- if (!timeout) {
- wait_status = kTimeout;
- }
- } catch (boost::thread_interrupted inter) {
- wait_status = kNoTimeout;
- } catch (std::exception err) {
- LOG4CXX_ERROR(
- logger_,
- "Failed to timewait for conditional variable timedwait_status: "
- << err.what());
+ bool timeout = true;
+
+ // What kind of lock are we ?
+ if (Lock* test_lock = dynamic_cast<Lock*>(&lock)) {
+ // Regular lock
+ // cond_var_.wait<boost::mutex>(test_lock->mutex_);
+ timeout = cond_var_.timed_wait<boost::mutex>(
+ test_lock->mutex_, boost::posix_time::milliseconds(milliseconds));
+ } else if (RecursiveLock* test_rec_lock =
+ dynamic_cast<RecursiveLock*>(&lock)) {
+ // Recursive lock
+ // cond_var_.wait<boost::recursive_mutex>(test_rec_lock->mutex_);
+ timeout = cond_var_.timed_wait<boost::recursive_mutex>(
+ test_rec_lock->mutex_, boost::posix_time::milliseconds(milliseconds));
+ } else {
+ // this is an unknown lock, we have an issue
+ LOG4CXX_ERROR(logger_, "Unknown lock type!");
+ NOTREACHED();
+ }
+
+ if (!timeout) {
+ wait_status = kTimeout;
}
lock.AssertFreeAndMarkTaken();
diff --git a/src/components/utils/src/lock_boost.cc b/src/components/utils/src/lock_boost.cc
index c22ac467b5..2299bcf77d 100644
--- a/src/components/utils/src/lock_boost.cc
+++ b/src/components/utils/src/lock_boost.cc
@@ -50,13 +50,7 @@ Lock::~Lock() {
}
void Lock::Acquire() {
- try {
- mutex_.lock();
- } catch (std::exception err) {
- LOG4CXX_FATAL(logger_,
- "Failed to acquire mutex " << &mutex_ << ": " << err.what());
- NOTREACHED();
- }
+ mutex_.lock();
AssertFreeAndMarkTaken();
}
@@ -101,13 +95,7 @@ RecursiveLock::~RecursiveLock() {
}
void RecursiveLock::Acquire() {
- try {
- mutex_.lock();
- } catch (std::exception err) {
- LOG4CXX_FATAL(logger_,
- "Failed to acquire mutex " << &mutex_ << ": " << err.what());
- NOTREACHED();
- }
+ mutex_.lock();
AssertFreeAndMarkTaken();
}