@@ -51,7 +51,7 @@ const time_t memcached_check_system_time = 60;
5151const time_t memcached_maximum_relative_time = 60 *60 *24 *30 ;
5252
5353static std::atomic<rel_time_t > memcached_uptime (0 );
54- static volatile time_t memcached_epoch = 0 ;
54+ static std::atomic< time_t > memcached_epoch ( 0 ) ;
5555static volatile uint64_t memcached_monotonic_start = 0 ;
5656static struct event_base * main_ev_base = NULL ;
5757
@@ -114,7 +114,7 @@ static_assert(std::is_unsigned<rel_time_t>::value,
114114rel_time_t mc_time_convert_to_real_time (rel_time_t t, cb::ExpiryLimit limit) {
115115 rel_time_t rv = 0 ;
116116
117- int64_t epoch{memcached_epoch};
117+ int64_t epoch{memcached_epoch. load () };
118118 int64_t uptime{memcached_uptime.load ()};
119119
120120 if (t > memcached_maximum_relative_time) { // t is absolute
@@ -245,14 +245,14 @@ void mc_time_clock_tick(void) {
245245 " memcached_uptime = {}, new memcached_epoch = {}, "
246246 " next check {}" ,
247247 difference,
248- memcached_epoch,
248+ memcached_epoch. load () ,
249249 memcached_uptime.load (),
250250 (timeofday.tv_sec - memcached_uptime),
251251 check_system_time + memcached_check_system_time);
252252 }
253253 /* adjust memcached_epoch to ensure correct timeofday can
254254 be calculated by clients*/
255- memcached_epoch = timeofday.tv_sec - memcached_uptime;
255+ memcached_epoch. store ( timeofday.tv_sec - memcached_uptime) ;
256256 }
257257
258258 /* move our checksystem time marker to trigger the next check
0 commit comments