Replaced boost::thread/mutex etc. with std equivalents
[pulseview.git] / pv / storesession.cpp
index ebb4b0ed374349e657fff6e14373c244afa23310..fcba344e9fa8470b6372119eb26e552f83d312ae 100644 (file)
 #include <pv/data/logicsnapshot.h>
 #include <pv/view/signal.h>
 
-using boost::dynamic_pointer_cast;
-using boost::mutex;
-using boost::shared_ptr;
-using boost::thread;
-using boost::lock_guard;
 using std::deque;
+using std::dynamic_pointer_cast;
+using std::lock_guard;
 using std::make_pair;
 using std::min;
+using std::mutex;
 using std::pair;
 using std::set;
+using std::shared_ptr;
 using std::string;
+using std::thread;
 using std::vector;
 
 namespace pv {
@@ -46,6 +46,7 @@ StoreSession::StoreSession(const std::string &file_name,
        const SigSession &session) :
        _file_name(file_name),
        _session(session),
+       _interrupt(false),
        _units_stored(0),
        _unit_count(0)
 {
@@ -129,18 +130,19 @@ bool StoreSession::start()
                free(probes[i]);
        delete[] probes;
 
-       _thread = boost::thread(&StoreSession::store_proc, this, snapshot);
+       _thread = std::thread(&StoreSession::store_proc, this, snapshot);
        return true;
 }
 
 void StoreSession::wait()
 {
-       _thread.join();
+       if (_thread.joinable())
+               _thread.join();
 }
 
 void StoreSession::cancel()
 {
-       _thread.interrupt();
+       _interrupt = true;
 }
 
 void StoreSession::store_proc(shared_ptr<data::LogicSnapshot> snapshot)
@@ -163,8 +165,7 @@ void StoreSession::store_proc(shared_ptr<data::LogicSnapshot> snapshot)
 
        const unsigned int samples_per_block = BlockSize / unit_size;
 
-       while (!boost::this_thread::interruption_requested() &&
-               start_sample < _unit_count)
+       while (!_interrupt && start_sample < _unit_count)
        {
                progress_updated();