From f46a852dc5fe0992b38916b4613f78290e8c9b14 Mon Sep 17 00:00:00 2001 From: Clayton Smith <argilo@gmail.com> Date: Fri, 31 Jan 2020 18:48:36 -0500 Subject: gr-blocks: copy samples before sleeping in throttle --- gr-blocks/lib/throttle_impl.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'gr-blocks/lib/throttle_impl.cc') 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; } -- cgit v1.2.3