mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-25 10:01:33 +08:00
Merge pull request #610 from joaomoreno/fix609
Use Sleep in Windows instead of sleep_for
This commit is contained in:
commit
751520f0cf
@ -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_
|
|||||||
|
|
||||||
// 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:
|
|||||||
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()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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 @@
|
|||||||
#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:
|
|||||||
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++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user