X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdatasnapshot.cpp;h=040d506a95bb88d02a15e3564ecbe65619b24a95;hp=31acca163e71f1a1475298dca9173e0c43b0e666;hb=bc5c1a99be1dbbad5263ce9852f38b5c31ce1c4a;hpb=51e77110d4316fd0106f8306f5e1f0523c5bf7d7 diff --git a/pv/datasnapshot.cpp b/pv/datasnapshot.cpp index 31acca16..040d506a 100644 --- a/pv/datasnapshot.cpp +++ b/pv/datasnapshot.cpp @@ -24,6 +24,8 @@ #include #include +using namespace boost; + namespace pv { DataSnapshot::DataSnapshot(int unit_size) : @@ -31,21 +33,25 @@ DataSnapshot::DataSnapshot(int unit_size) : _sample_count(0), _unit_size(unit_size) { + lock_guard lock(_mutex); assert(_unit_size > 0); } DataSnapshot::~DataSnapshot() { + lock_guard lock(_mutex); free(_data); } uint64_t DataSnapshot::get_sample_count() { + lock_guard lock(_mutex); return _sample_count; } void DataSnapshot::append_data(void *data, uint64_t samples) { + lock_guard lock(_mutex); _data = realloc(_data, (_sample_count + samples) * _unit_size); memcpy((uint8_t*)_data + _sample_count * _unit_size, data, samples * _unit_size);