+ device_.reset();
+
+ // Remove all stored data
+ signals_.clear();
+ {
+ shared_lock<shared_mutex> lock(signals_mutex_);
+ for (const shared_ptr<data::SignalData> d : all_signal_data_)
+ d->clear();
+ }
+ all_signal_data_.clear();
+ cur_logic_segment_.reset();
+
+ for (auto entry : cur_analog_segments_) {
+ shared_ptr<sigrok::Channel>(entry.first).reset();
+ shared_ptr<data::AnalogSegment>(entry.second).reset();
+ }
+
+ logic_data_.reset();
+ decode_traces_.clear();
+
+ signals_changed();
+