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 u
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.