X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=d21b75ab3f432422977b77d1d79056cdec1dc547;hp=4b17a56f2fded2b7d8031e76e100d4b8e601db18;hb=303d6ea697468ee79f4c3f73afc57db0ce6319a8;hpb=4800cf9a4b346ec4553234aa1a3e10bf783bf965 diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 4b17a56f..d21b75ab 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -32,6 +32,8 @@ #include #include +#include + #include #include #include @@ -394,8 +396,7 @@ void View::set_scale_offset(double scale, const Timestamp& offset) set< shared_ptr > View::get_visible_data() const { - shared_lock lock(session().signals_mutex()); - const unordered_set< shared_ptr > &sigs(session().signals()); + const unordered_set< shared_ptr > sigs(session().signals()); // Make a set of all the visible data objects set< shared_ptr > visible_data; @@ -507,8 +508,10 @@ void View::update_viewport() void View::restack_all_trace_tree_items() { // Make a list of owners that is sorted from deepest first + const vector> items( + list_by_type()); set< TraceTreeItemOwner* > owners; - for (const auto &r : *this) + for (const auto &r : items) owners.insert(r->owner()); vector< TraceTreeItemOwner* > sorted_owners(owners.begin(), owners.end()); sort(sorted_owners.begin(), sorted_owners.end(), @@ -520,8 +523,6 @@ void View::restack_all_trace_tree_items() o->restack_items(); // Animate the items to their destination - const vector< shared_ptr > items( - list_by_type()); for (const auto &i : items) i->animate_to_layout_v_offset(); } @@ -743,8 +744,7 @@ void View::determine_time_unit() { // Check whether we know the sample rate and hence can use time as the unit if (time_unit_ == util::TimeUnit::Samples) { - shared_lock lock(session().signals_mutex()); - const unordered_set< shared_ptr > &sigs(session().signals()); + const unordered_set< shared_ptr > sigs(session().signals()); // Check all signals but... for (const shared_ptr signal : sigs) { @@ -883,8 +883,7 @@ void View::signals_changed() const set> prev_traces( prev_trace_list.begin(), prev_trace_list.end()); - shared_lock lock(session_.signals_mutex()); - const unordered_set< shared_ptr > &sigs(session_.signals()); + const unordered_set< shared_ptr > sigs(session_.signals()); set< shared_ptr > traces(sigs.begin(), sigs.end()); @@ -1063,7 +1062,9 @@ void View::process_sticky_events() void View::on_hover_point_changed() { - for (shared_ptr r : *this) + const vector> trace_tree_items( + list_by_type()); + for (shared_ptr r : trace_tree_items) r->hover_point_changed(); }