Browse Source

telldus-core: Fix compilation without usleep

Uses C++11's sleep_for, which internally uses nanosleep.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
lilik-openwrt-22.03
Rosen Penev 5 years ago
parent
commit
2cff5b6563
No known key found for this signature in database GPG Key ID: 36D31CFA845F0E3B
1 changed files with 40 additions and 0 deletions
  1. +40
    -0
      utils/telldus-core/patches/930-usleep.patch

+ 40
- 0
utils/telldus-core/patches/930-usleep.patch View File

@ -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;

Loading…
Cancel
Save