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
/
sigsession.cpp
diff --git
a/pv/sigsession.cpp
b/pv/sigsession.cpp
index 9ff6efe4df6e5d00d00b21a5c41d68f0f4f79acc..11c89e092572e61119a6f96bec53a8e1a30dc775 100644
(file)
--- a/
pv/sigsession.cpp
+++ b/
pv/sigsession.cpp
@@
-47,12
+47,16
@@
#include <libsigrok/libsigrok.hpp>
#include <libsigrok/libsigrok.hpp>
+using boost::shared_lock;
+using boost::shared_mutex;
+using boost::unique_lock;
+
using std::dynamic_pointer_cast;
using std::function;
using std::lock_guard;
using std::dynamic_pointer_cast;
using std::function;
using std::lock_guard;
-using std::mutex;
using std::list;
using std::map;
using std::list;
using std::map;
+using std::mutex;
using std::set;
using std::shared_ptr;
using std::string;
using std::set;
using std::shared_ptr;
using std::string;
@@
-229,7
+233,7
@@
void SigSession::stop_capture()
set< shared_ptr<data::SignalData> > SigSession::get_data() const
{
set< shared_ptr<data::SignalData> > SigSession::get_data() const
{
-
lock_guard<
mutex> lock(_signals_mutex);
+
shared_lock<shared_
mutex> lock(_signals_mutex);
set< shared_ptr<data::SignalData> > data;
for (const shared_ptr<view::Signal> sig : _signals) {
assert(sig);
set< shared_ptr<data::SignalData> > data;
for (const shared_ptr<view::Signal> sig : _signals) {
assert(sig);
@@
-239,7
+243,7
@@
set< shared_ptr<data::SignalData> > SigSession::get_data() const
return data;
}
return data;
}
-mutex& SigSession::signals_mutex() const
+
boost::shared_
mutex& SigSession::signals_mutex() const
{
return _signals_mutex;
}
{
return _signals_mutex;
}
@@
-257,7
+261,7
@@
bool SigSession::add_decoder(srd_decoder *const dec)
try
{
try
{
- lock_guard<mutex> lock(_signals_mutex);
+ lock_guard<
boost::shared_
mutex> lock(_signals_mutex);
// Create the decoder
decoder_stack = shared_ptr<data::DecoderStack>(
// Create the decoder
decoder_stack = shared_ptr<data::DecoderStack>(
@@
-308,7
+312,7
@@
bool SigSession::add_decoder(srd_decoder *const dec)
vector< shared_ptr<view::DecodeTrace> > SigSession::get_decode_signals() const
{
vector< shared_ptr<view::DecodeTrace> > SigSession::get_decode_signals() const
{
-
lock_guard<
mutex> lock(_signals_mutex);
+
shared_lock<shared_
mutex> lock(_signals_mutex);
return _decode_traces;
}
return _decode_traces;
}
@@
-362,7
+366,7
@@
void SigSession::update_signals(shared_ptr<Device> device)
// Make the Signals list
{
// Make the Signals list
{
-
lock_guard<
mutex> lock(_signals_mutex);
+
unique_lock<shared_
mutex> lock(_signals_mutex);
_signals.clear();
_signals.clear();
@@
-403,7
+407,7
@@
void SigSession::update_signals(shared_ptr<Device> device)
shared_ptr<view::Signal> SigSession::signal_from_channel(
shared_ptr<Channel> channel) const
{
shared_ptr<view::Signal> SigSession::signal_from_channel(
shared_ptr<Channel> channel) const
{
- lock_guard<mutex> lock(_signals_mutex);
+ lock_guard<
boost::shared_
mutex> lock(_signals_mutex);
for (shared_ptr<view::Signal> sig : _signals) {
assert(sig);
if (sig->channel() == channel)
for (shared_ptr<view::Signal> sig : _signals) {
assert(sig);
if (sig->channel() == channel)