From 7887a76a7d9eb140da6a33c15845f2ad5a072faa Mon Sep 17 00:00:00 2001 From: jcorgan Date: Mon, 27 Nov 2006 04:53:34 +0000 Subject: [PATCH] Fixes ticket:103 (patch applied) git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4032 221aa14e-8319-0410-a670-987f0aec2ac5 --- gnuradio-core/src/lib/general/gr_throttle.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnuradio-core/src/lib/general/gr_throttle.cc b/gnuradio-core/src/lib/general/gr_throttle.cc index 95c73c41..f8bbc184 100644 --- a/gnuradio-core/src/lib/general/gr_throttle.cc +++ b/gnuradio-core/src/lib/general/gr_throttle.cc @@ -32,6 +32,9 @@ #ifdef HAVE_TIME_H #include #endif +#if !defined(HAVE_NANOSLEEP) && defined(HAVE_SSLEEP) +#include +#endif #ifdef HAVE_NANOSLEEP @@ -80,7 +83,7 @@ gr_throttle::work (int noutput_items, const char *in = (const char *) input_items[0]; char *out = (char *) output_items[0]; -#if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_NANOSLEEP) +#if defined(HAVE_GETTIMEOFDAY) // // If our average sample rate exceeds our target sample rate, // delay long enough to reduce to our target rate. @@ -96,10 +99,14 @@ gr_throttle::work (int noutput_items, double actual_samples_per_sec = d_total_samples / t; if (actual_samples_per_sec > d_samples_per_sec){ // need to delay double delay = d_total_samples / d_samples_per_sec - t; +#ifdef HAVE_NANOSLEEP struct timespec ts; ts.tv_sec = (time_t)floor(delay); ts.tv_nsec = (long)((delay - floor(delay)) * 1e9); gr_nanosleep(&ts); +#elif HAVE_SSLEEP + Sleep( (DWORD)(delay*1000) ); +#endif } #endif -- 2.47.2