9

The current time must be stored globally in order for gettimeofday to work, however I am not sure if the function modifies any global state so that concurrent execution is undefined.

May Oakes
  • 4,359
  • 5
  • 44
  • 51

4 Answers4

23

gettimeofday is thread safe.

The (posix) functions listed here might not be, gettimeofday is not one of them.

nos
  • 223,662
  • 58
  • 417
  • 506
3

Yes, it is thread-safe. The only data it modifies is in the structures you pass pointers to, so an implementation that wasn't thread-safe would have to be doing something spooky.

Best of luck on your project.

Ratzkewatzke
  • 288
  • 1
  • 3
2

In glibc the gettimeofday(2) is a simple wrapper around a system call (it's a vsyscall actually). No data is touched in the userland. It is thread-safe.

Nikolai Fetissov
  • 82,306
  • 11
  • 110
  • 171
1

No data is modified with this call. You just get a copy. Hence its completely thread safe.

Praveen S
  • 10,355
  • 2
  • 43
  • 69