X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fsigsession.cpp;h=e42ba2cbdc3f997d73f67e0b855f6affb4f55e0b;hb=313b4901cd15bd87b20870f0354a683a5fc447a5;hp=282b7ec5c691959f432fe2627a60b1eddde69754;hpb=d9aecf1fcd9af471db3b59de7efc65b9632a6d79;p=pulseview.git diff --git a/pv/sigsession.cpp b/pv/sigsession.cpp index 282b7ec5..e42ba2cb 100644 --- a/pv/sigsession.cpp +++ b/pv/sigsession.cpp @@ -39,22 +39,22 @@ #include "view/decodetrace.h" #include "view/logicsignal.h" -#include - +#include +#include #include #include #include -using boost::dynamic_pointer_cast; -using boost::function; -using boost::lock_guard; -using boost::mutex; -using boost::shared_ptr; +using std::dynamic_pointer_cast; +using std::function; +using std::lock_guard; +using std::mutex; using std::list; using std::map; using std::set; +using std::shared_ptr; using std::string; using std::vector; @@ -77,11 +77,9 @@ SigSession::~SigSession() { using pv::device::Device; + // Stop and join to the thread stop_capture(); - if (_sampling_thread.joinable()) - _sampling_thread.join(); - _dev_inst->release(); // TODO: This should not be necessary @@ -188,17 +186,15 @@ void SigSession::start_capture(function error_handler) } // Begin the session - _sampling_thread = boost::thread( + _sampling_thread = std::thread( &SigSession::sample_thread_proc, this, _dev_inst, error_handler); } void SigSession::stop_capture() { - if (get_capture_state() == Stopped) - return; - - sr_session_stop(); + if (get_capture_state() != Stopped) + sr_session_stop(); // Check that sampling stopped if (_sampling_thread.joinable()) @@ -448,7 +444,7 @@ void SigSession::sample_thread_proc(shared_ptr dev_inst, return; } - set_capture_state(dev_inst->is_trigger_enabled() ? + set_capture_state(sr_session_trigger_get() ? AwaitingTrigger : Running); dev_inst->run();