Merge pull request #610 from joaomoreno/fix609
Use Sleep in Windows instead of sleep_for
This commit is contained in:
		@@ -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
 | 
			
		||||
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::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
 | 
			
		||||
    if (time_since_op <= milliseconds(200))
 | 
			
		||||
        return sleep_for(milliseconds(20));
 | 
			
		||||
        return details::os::sleep_for_millis(20);
 | 
			
		||||
 | 
			
		||||
    // sleep for 500 ms
 | 
			
		||||
    return sleep_for(milliseconds(500));
 | 
			
		||||
    return details::os::sleep_for_millis(500);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// wait for the queue to be empty
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ public:
 | 
			
		||||
            if (!os::fopen_s(&_fd, fname, mode))
 | 
			
		||||
                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);
 | 
			
		||||
@@ -129,7 +129,7 @@ public:
 | 
			
		||||
        if (ext_index == filename_t::npos || ext_index == 0 || ext_index == fname.size() - 1)
 | 
			
		||||
            return std::make_tuple(fname, spdlog::filename_t());
 | 
			
		||||
 | 
			
		||||
        // treat casese like "/etc/rc.d/somelogfile or "/abc/.hiddenfile"        
 | 
			
		||||
        // treat casese like "/etc/rc.d/somelogfile or "/abc/.hiddenfile"
 | 
			
		||||
        auto folder_index = fname.rfind(details::os::folder_sep);
 | 
			
		||||
        if (folder_index != fname.npos && folder_index >= ext_index - 1)
 | 
			
		||||
            return std::make_tuple(fname, spdlog::filename_t());
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@
 | 
			
		||||
#if defined(__ANDROID__)
 | 
			
		||||
 | 
			
		||||
#include "sink.h"
 | 
			
		||||
#include "../details/os.h"
 | 
			
		||||
 | 
			
		||||
#include <mutex>
 | 
			
		||||
#include <string>
 | 
			
		||||
@@ -43,7 +44,7 @@ public:
 | 
			
		||||
        int retry_count = 0;
 | 
			
		||||
        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);
 | 
			
		||||
            retry_count++;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user