fix MinGW
[m6w6/libmemcached] / src / p9y / gettimeofday.cpp
1 #include "gettimeofday.hpp"
2
3 #include <chrono>
4
5 #if !defined HAVE_GETTIMEOFDAY
6 int gettimeofday(struct timeval* tp, struct timezone*) {
7 using clock = std::chrono::system_clock;
8 auto as_sec = [] (auto d) {
9 return std::chrono::duration_cast<std::chrono::seconds>(d);
10 };
11 auto as_usec = [] (auto d) {
12 return std::chrono::duration_cast<std::chrono::microseconds>(d);
13 };
14
15 auto now = clock::now().time_since_epoch();
16 auto sec = as_sec(now);
17 auto usec = as_usec(now - sec);
18
19 tp->tv_sec = sec.count();
20 tp->tv_usec = usec.count();
21 return 0;
22 }
23 #endif