X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdatasnapshot.cpp;h=040d506a95bb88d02a15e3564ecbe65619b24a95;hb=7d29656f1e4de945eee3a9ea5dbc0ef88c4a7e30;hp=31acca163e71f1a1475298dca9173e0c43b0e666;hpb=6ac96c2e0ef986da9c9ebea50906cb717aa382ba;p=pulseview.git diff --git a/pv/datasnapshot.cpp b/pv/datasnapshot.cpp index 31acca1..040d506 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);