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