telldus-core: Fix compilation without usleep
authorRosen Penev <redacted>
Fri, 4 Oct 2019 20:23:33 +0000 (13:23 -0700)
committerRosen Penev <redacted>
Fri, 4 Oct 2019 20:23:33 +0000 (13:23 -0700)
Uses C++11's sleep_for, which internally uses nanosleep.

Signed-off-by: Rosen Penev <redacted>
utils/telldus-core/patches/930-usleep.patch [new file with mode: 0644]

diff --git a/utils/telldus-core/patches/930-usleep.patch b/utils/telldus-core/patches/930-usleep.patch
new file mode 100644 (file)
index 0000000..7c30a10
--- /dev/null
@@ -0,0 +1,40 @@
+--- a/common/common.h
++++ b/common/common.h
+@@ -25,15 +25,13 @@
+ #ifdef _WINDOWS
+ #include <fstream>  // NOLINT(readability/streams)
+ #endif
++#include <chrono>
+ #include <string>
++#include <thread>
+ #include "common/Strings.h"
+ inline void msleep( const int msec) {
+-#ifdef _WINDOWS
+-      Sleep(msec);
+-#else
+-      usleep(msec*1000);
+-#endif
++      std::this_thread::sleep_for(std::chrono::milliseconds(msec));
+ }
+ inline void dlog(const char *fmt, ...) {
+--- a/service/TellStick_libftdi.cpp
++++ b/service/TellStick_libftdi.cpp
+@@ -8,7 +8,6 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+-#include <unistd.h>
+ #include <list>
+ #include <string>
+@@ -231,7 +230,7 @@ int TellStick::send( const std::string &strMessage ) {
+                               return TELLSTICK_SUCCESS;
+                       }
+               } else if(ret == 0) {  // No data available
+-                      usleep(100);
++                      std::this_thread::sleep_for(std::chrono::microseconds(100));
+               } else {  // Error
+                       Log::debug("Broken pipe on read");
+                       return TELLSTICK_ERROR_BROKEN_PIPE;
git clone https://git.99rst.org/PROJECT