Merge branch 'pe/time-use-gettimeofday'
time(2) on glib 2.31+, especially on Linux, goes out of sync with higher resolution timers used for gettimeofday(2) and by the filesystem. Replace all calls to it with a git_time() wrapper and use gettimeofday(2) in its implementation. * pe/time-use-gettimeofday: git-compat-util: use gettimeofday(2) for time(2)
This commit is contained in:
commit
cdb1ef07d2
@ -339,6 +339,25 @@ static inline const char *precompose_string_if_needed(const char *in)
|
|||||||
int compat_mkdir_wo_trailing_slash(const char*, mode_t);
|
int compat_mkdir_wo_trailing_slash(const char*, mode_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef time
|
||||||
|
#undef time
|
||||||
|
#endif
|
||||||
|
static inline time_t git_time(time_t *tloc)
|
||||||
|
{
|
||||||
|
struct timeval tv;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Avoid time(NULL), which can disagree with gettimeofday(2)
|
||||||
|
* and filesystem timestamps.
|
||||||
|
*/
|
||||||
|
gettimeofday(&tv, NULL);
|
||||||
|
|
||||||
|
if (tloc)
|
||||||
|
*tloc = tv.tv_sec;
|
||||||
|
return tv.tv_sec;
|
||||||
|
}
|
||||||
|
#define time git_time
|
||||||
|
|
||||||
#ifdef NO_STRUCT_ITIMERVAL
|
#ifdef NO_STRUCT_ITIMERVAL
|
||||||
struct itimerval {
|
struct itimerval {
|
||||||
struct timeval it_interval;
|
struct timeval it_interval;
|
||||||
|
Loading…
Reference in New Issue
Block a user