Unverified Commit 751520f0 authored by Gabi Melman's avatar Gabi Melman Committed by GitHub

Merge pull request #610 from joaomoreno/fix609

Use Sleep in Windows instead of sleep_for
parents 32177aa7 357a63d9
...@@ -358,7 +358,6 @@ inline void spdlog::details::async_log_helper::set_formatter(formatter_ptr msg_f ...@@ -358,7 +358,6 @@ inline void spdlog::details::async_log_helper::set_formatter(formatter_ptr msg_f
// spin, yield or sleep. use the time passed since last message as a hint // spin, yield or sleep. use the time passed since last message as a hint
inline void spdlog::details::async_log_helper::sleep_or_yield(const spdlog::log_clock::time_point& now, const spdlog::log_clock::time_point& last_op_time) inline void spdlog::details::async_log_helper::sleep_or_yield(const spdlog::log_clock::time_point& now, const spdlog::log_clock::time_point& last_op_time)
{ {
using namespace std::this_thread;
using std::chrono::milliseconds; using std::chrono::milliseconds;
using std::chrono::microseconds; using std::chrono::microseconds;
...@@ -374,10 +373,10 @@ inline void spdlog::details::async_log_helper::sleep_or_yield(const spdlog::log_ ...@@ -374,10 +373,10 @@ inline void spdlog::details::async_log_helper::sleep_or_yield(const spdlog::log_
// sleep for 20 ms upto 200 ms // sleep for 20 ms upto 200 ms
if (time_since_op <= milliseconds(200)) if (time_since_op <= milliseconds(200))
return sleep_for(milliseconds(20)); return details::os::sleep_for_millis(20);
// sleep for 500 ms // sleep for 500 ms
return sleep_for(milliseconds(500)); return details::os::sleep_for_millis(500);
} }
// wait for the queue to be empty // wait for the queue to be empty
......
...@@ -55,7 +55,7 @@ public: ...@@ -55,7 +55,7 @@ public:
if (!os::fopen_s(&_fd, fname, mode)) if (!os::fopen_s(&_fd, fname, mode))
return; return;
std::this_thread::sleep_for(std::chrono::milliseconds(open_interval)); details::os::sleep_for_millis(open_interval);
} }
throw spdlog_ex("Failed opening file " + os::filename_to_str(_filename) + " for writing", errno); throw spdlog_ex("Failed opening file " + os::filename_to_str(_filename) + " for writing", errno);
......
...@@ -362,6 +362,15 @@ inline size_t thread_id() ...@@ -362,6 +362,15 @@ inline size_t thread_id()
} }
// from https://github.com/gabime/spdlog/issues/609
inline void sleep_for_millis(int milliseconds)
{
#if defined(_WIN32)
Sleep(milliseconds);
#else
std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
#endif
}
// wchar support for windows file names (SPDLOG_WCHAR_FILENAMES must be defined) // wchar support for windows file names (SPDLOG_WCHAR_FILENAMES must be defined)
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES) #if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#if defined(__ANDROID__) #if defined(__ANDROID__)
#include "sink.h" #include "sink.h"
#include "../details/os.h"
#include <mutex> #include <mutex>
#include <string> #include <string>
...@@ -43,7 +44,7 @@ public: ...@@ -43,7 +44,7 @@ public:
int retry_count = 0; int retry_count = 0;
while ((ret == -11/*EAGAIN*/) && (retry_count < SPDLOG_ANDROID_RETRIES)) while ((ret == -11/*EAGAIN*/) && (retry_count < SPDLOG_ANDROID_RETRIES))
{ {
std::this_thread::sleep_for(std::chrono::milliseconds(5)); details::os::sleep_for_millis(5);
ret = __android_log_write(priority, _tag.c_str(), msg_output); ret = __android_log_write(priority, _tag.c_str(), msg_output);
retry_count++; retry_count++;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment