mutex DecoderStack::_global_decode_mutex;
-DecoderStack::DecoderStack(const srd_decoder *const dec) :
+DecoderStack::DecoderStack(pv::SigSession &session,
+ const srd_decoder *const dec) :
+ _session(session),
_samples_decoded(0)
{
_stack.push_back(shared_ptr<decode::Decoder>(
DecoderStack::~DecoderStack()
{
- _decode_thread.interrupt();
- _decode_thread.join();
+ if (_decode_thread.joinable()) {
+ _decode_thread.interrupt();
+ _decode_thread.join();
+ }
}
const std::list< boost::shared_ptr<decode::Decoder> >&
shared_ptr<pv::view::LogicSignal> logic_signal;
shared_ptr<pv::data::Logic> data;
- _decode_thread.interrupt();
- _decode_thread.join();
+ if (_decode_thread.joinable()) {
+ _decode_thread.interrupt();
+ _decode_thread.join();
+ }
clear();