const int64_t DecoderStack::DecodeChunkLength = 4096;
const unsigned int DecoderStack::DecodeNotifyPeriod = 65536;
-mutex DecoderStack::global_decode_mutex_;
+mutex DecoderStack::global_srd_mutex_;
DecoderStack::DecoderStack(pv::Session &session,
const srd_decoder *const dec) :
for (int64_t i = 0; !interrupt_ && i < sample_count;
i += chunk_sample_count) {
- lock_guard<mutex> decode_lock(global_decode_mutex_);
const int64_t chunk_end = min(
i + chunk_sample_count, sample_count);
assert(segment_);
+ // Prevent any other decode threads from accessing libsigrokdecode
+ lock_guard<mutex> srd_lock(global_srd_mutex_);
+
// Create the session
srd_session_new(&session);
assert(session);
double samplerate_;
/**
- * This mutex prevents more than one decode operation occuring
- * concurrently.
+ * This mutex prevents more than one thread from accessing
+ * libsigrokdecode concurrently.
* @todo A proper solution should be implemented to allow multiple
- * decode operations.
+ * decode operations in parallel.
*/
- static std::mutex global_decode_mutex_;
+ static std::mutex global_srd_mutex_;
std::list< std::shared_ptr<decode::Decoder> > stack_;