summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClayton Smith <argilo@gmail.com>2020-01-31 18:48:36 -0500
committerMarcus Müller <marcus@hostalia.de>2020-02-04 13:23:17 +0100
commitf46a852dc5fe0992b38916b4613f78290e8c9b14 (patch)
tree0957ae2fcc18274c4a259c6dbe55230c32abcd87
parentd90833f1a4a1e8bc243b68088e42cfde6fe080fe (diff)
gr-blocks: copy samples before sleeping in throttle
-rw-r--r--gr-blocks/lib/throttle_impl.cc11
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;
}