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
 | 
					// 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++;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user