projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SigSession: Converted _signals_mutex into a boost::shared_mutex
[pulseview.git]
/
pv
/
view
/
decodetrace.cpp
diff --git
a/pv/view/decodetrace.cpp
b/pv/view/decodetrace.cpp
index 138ba0a14263fc92e0ce09cb74232f227d0b0c22..1cb9ce7154a9c302f15e3ecb63637f109f84286a 100644
(file)
--- a/
pv/view/decodetrace.cpp
+++ b/
pv/view/decodetrace.cpp
@@
-53,6
+53,8
@@
extern "C" {
#include <pv/widgets/decodergroupbox.h>
#include <pv/widgets/decodermenu.h>
#include <pv/widgets/decodergroupbox.h>
#include <pv/widgets/decodermenu.h>
+using boost::shared_lock;
+using boost::shared_mutex;
using std::dynamic_pointer_cast;
using std::list;
using std::lock_guard;
using std::dynamic_pointer_cast;
using std::list;
using std::lock_guard;
@@
-60,7
+62,6
@@
using std::make_pair;
using std::max;
using std::map;
using std::min;
using std::max;
using std::map;
using std::min;
-using std::mutex;
using std::pair;
using std::shared_ptr;
using std::tie;
using std::pair;
using std::shared_ptr;
using std::tie;
@@
-696,7
+697,7
@@
QComboBox* DecodeTrace::create_channel_selector(
{
assert(dec);
{
assert(dec);
-
lock_guard<
mutex> lock(_session.signals_mutex());
+
shared_lock<shared_
mutex> lock(_session.signals_mutex());
const vector< shared_ptr<Signal> > &sigs(_session.signals());
assert(_decoder_stack);
const vector< shared_ptr<Signal> > &sigs(_session.signals());
assert(_decoder_stack);
@@
-731,7
+732,7
@@
void DecodeTrace::commit_decoder_channels(shared_ptr<data::decode::Decoder> &dec
map<const srd_channel*, shared_ptr<LogicSignal> > channel_map;
map<const srd_channel*, shared_ptr<LogicSignal> > channel_map;
-
lock_guard<
mutex> lock(_session.signals_mutex());
+
shared_lock<shared_
mutex> lock(_session.signals_mutex());
const vector< shared_ptr<Signal> > &sigs(_session.signals());
for (const ChannelSelector &s : _channel_selectors)
const vector< shared_ptr<Signal> > &sigs(_session.signals());
for (const ChannelSelector &s : _channel_selectors)