]> sigrok.org Git - pulseview.git/blobdiff - pv/storesession.cpp
RowItem: Derrive from std::enable_shared_from_this
[pulseview.git] / pv / storesession.cpp
index 4de9d56dde2cc676899404a27040ab6ec88f0967..ef1c6aad2d245317988066b65c3299033d89ebca 100644 (file)
@@ -29,6 +29,9 @@
 
 #include <libsigrok/libsigrok.hpp>
 
+using boost::shared_lock;
+using boost::shared_mutex;
+
 using std::deque;
 using std::dynamic_pointer_cast;
 using std::lock_guard;
@@ -79,8 +82,9 @@ bool StoreSession::start()
 {
        set< shared_ptr<data::SignalData> > data_set =
                _session.get_data();
-       const vector< shared_ptr<view::Signal> > sigs =
-               _session.get_signals();
+
+       shared_lock<shared_mutex> lock(_session.signals_mutex());
+       const vector< shared_ptr<view::Signal> > &sigs(_session.signals());
 
        // Check we have logic data
        if (data_set.empty() || sigs.empty()) {