From f6fd6a7cf73882788549f39927de6d091228876f Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Sun, 15 Sep 2019 14:18:57 +0200 Subject: [PATCH] Avoid re-computing seconds --- src/log/file_appender.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/log/file_appender.cpp b/src/log/file_appender.cpp index 3d8c26d..633f097 100644 --- a/src/log/file_appender.cpp +++ b/src/log/file_appender.cpp @@ -23,9 +23,10 @@ namespace fc { private: future _deletion_task; boost::atomic _current_file_number; + const int64_t _interval_seconds; public: - impl( const config& c) : cfg( c ) + impl( const config& c) : cfg( c ), _interval_seconds( cfg.rotation_interval.to_seconds() ) { try { @@ -63,9 +64,8 @@ namespace fc { { if( !cfg.rotate ) return; - int64_t interval_seconds = cfg.rotation_interval.to_seconds(); fc::time_point now = time_point::now(); - int64_t new_file_number = now.sec_since_epoch() / interval_seconds; + int64_t new_file_number = now.sec_since_epoch() / _interval_seconds; if( initializing ) _current_file_number.store( new_file_number ); else @@ -74,7 +74,7 @@ namespace fc { if( prev_file_number >= new_file_number ) return; if( !_current_file_number.compare_exchange_weak( prev_file_number, new_file_number ) ) return; } - fc::time_point_sec start_time = time_point_sec( (uint32_t)(new_file_number * interval_seconds) ); + fc::time_point_sec start_time = time_point_sec( (uint32_t)(new_file_number * _interval_seconds) ); string timestamp_string = start_time.to_non_delimited_iso_string(); fc::path link_filename = cfg.filename; fc::path log_filename = link_filename.parent_path() / (link_filename.filename().string() + "." + timestamp_string); @@ -97,8 +97,7 @@ namespace fc { { /* Delete old log files */ auto current_file = _current_file_number.load(); - int64_t interval_seconds = cfg.rotation_interval.to_seconds(); - fc::time_point_sec start_time = time_point_sec( (uint32_t)(current_file * interval_seconds) ); + fc::time_point_sec start_time = time_point_sec( (uint32_t)(current_file * _interval_seconds) ); fc::time_point limit_time = time_point::now() - cfg.rotation_limit; fc::path link_filename = cfg.filename; string link_filename_string = link_filename.filename().string(); @@ -130,8 +129,7 @@ namespace fc { { } } - _deletion_task = schedule( [this]() { delete_files(); }, - start_time + cfg.rotation_interval.to_seconds(), + _deletion_task = schedule( [this]() { delete_files(); }, start_time + _interval_seconds, "delete_files(3)" ); } };