On Wed, 2002-06-19 at 09:39, Doug MacEachern wrote: > > static void get_current_time(apr_uint64_t *timestamp) > { > /* ### this needs to be made thread-safe! */ > > apr_uint64_t time_now; > static apr_uint64_t time_last = 0; > static int fudge = 0; > > any plans/thoughts on making it threadsafe?
How about something like this as a replacement for the get_current_time() logic... for (;;) { gettimeofday(&now); if (now > time_last) { atomic_cas(&time_last, now, time_last); if (atomic_cas succeeded) { return now; } } else { now = time_last + 1; atomic_cas(&time_last, now, time_last); if (atomic_cas succeeded) { return now; } } } --Brian