diff options
author | Clayton Smith <argilo@gmail.com> | 2020-01-31 18:48:36 -0500 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2020-02-04 13:23:17 +0100 |
commit | f46a852dc5fe0992b38916b4613f78290e8c9b14 (patch) | |
tree | 0957ae2fcc18274c4a259c6dbe55230c32abcd87 | |
parent | d90833f1a4a1e8bc243b68088e42cfde6fe080fe (diff) |
gr-blocks: copy samples before sleeping in throttle
-rw-r--r-- | gr-blocks/lib/throttle_impl.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gr-blocks/lib/throttle_impl.cc b/gr-blocks/lib/throttle_impl.cc index 5a84df0980..9854af151b 100644 --- a/gr-blocks/lib/throttle_impl.cc +++ b/gr-blocks/lib/throttle_impl.cc @@ -76,6 +76,12 @@ int throttle_impl::work(int noutput_items, } } + // copy all samples output[i] <= input[i] + const char* in = (const char*)input_items[0]; + char* out = (char*)output_items[0]; + std::memcpy(out, in, noutput_items * d_itemsize); + d_total_samples += noutput_items; + auto now = std::chrono::steady_clock::now(); auto expected_time = d_start + d_sample_period * d_total_samples; @@ -90,11 +96,6 @@ int throttle_impl::work(int noutput_items, std::this_thread::sleep_until(expected_time); } - // copy all samples output[i] <= input[i] - const char* in = (const char*)input_items[0]; - char* out = (char*)output_items[0]; - std::memcpy(out, in, noutput_items * d_itemsize); - d_total_samples += noutput_items; return noutput_items; } |