Under linux, use the much faster CLOCK_REALTIME_COARSE clock by default (SPDLOG_CLOCK_COARSE is defined in common.h)

This commit is contained in:
gabi
2015-01-29 00:19:37 +02:00
parent e85a3cc33b
commit fb67e571f5
3 changed files with 30 additions and 17 deletions

View File

@@ -23,7 +23,6 @@
/*************************************************************************/
#pragma once
#include<string>
#include<cstdio>
#include<ctime>
@@ -35,6 +34,8 @@
# include <Windows.h>
#endif
#include "..\common.h"
namespace spdlog
{
namespace details
@@ -42,6 +43,21 @@ namespace details
namespace os
{
inline spdlog::log_clock::time_point now()
{
#ifdef SPDLOG_CLOCK_COARSE
timespec ts;
::clock_gettime(CLOCK_REALTIME_COARSE, &ts);
return std::chrono::time_point<log_clock, typename log_clock::duration>(
std::chrono::duration_cast<typename log_clock::duration>(
std::chrono::seconds(ts.tv_sec) + std::chrono::nanoseconds(ts.tv_nsec)));
#else
return log_clock::now();
#endif
}
inline std::tm localtime(const std::time_t &time_tt)
{