[vlc-devel] [PATCH] src: darwin/thread: reimplement monotonic clock for darwin

Rémi Denis-Courmont remi at remlab.net
Mon Jan 6 21:59:37 CET 2014


Le lundi 6 janvier 2014, 21:40:01 Gilles Chanteperdrix a écrit :
> On 01/06/2014 08:10 PM, Rémi Denis-Courmont wrote:
> > Sure, nanosleep() is allowed to use the monotonic clock,
> 
> No, nanosleep is supposed to be based on CLOCK_REALTIME, if you want to
> use CLOCK_MONOTONIC, you have to use clock_nanosleep.

Your statement is very misleading and I would even say you are wrong, 
depending on the interpretation of the word "base".

"Setting the value of the CLOCK_REALTIME clock via clock_settime() shall have 
no effect on threads that are blocked waiting for a relative time service based 
upon this clock, including the nanosleep() function; nor on the expiration of 
relative timers based upon this clock. Consequently, these time services shall 
expire when the requested relative interval elapses, independently of the new 
or old value of the clock."

Source:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html

In other words, nanosleep() follows the real-time clock minus the time warps. 
That is a possible and indeed the typical implementation of the monotonic 
clock on POSIX systems.

-- 
Rémi Denis-Courmont
http://www.remlab.net/




More information about the vlc-devel mailing list