Date: Mon, 24 May 2010 10:59:44 -0400 (EDT) From: Daniel Eischen <deischen@freebsd.org> To: Chris Vine <chris@cvine.freeserve.co.uk> Cc: freebsd-threads@freebsd.org Subject: Re: Monotonic clocks Message-ID: <Pine.GSO.4.64.1005241057350.6311@sea.ntplx.net> In-Reply-To: <20100524151426.7ec75b1a@boulder.homenet> References: <20100524140513.6475cb2c@boulder.homenet> <Pine.GSO.4.64.1005240944500.5996@sea.ntplx.net> <20100524151426.7ec75b1a@boulder.homenet>
index | next in thread | previous in thread | raw e-mail
On Mon, 24 May 2010, Chris Vine wrote:
> On Mon, 24 May 2010 09:46:39 -0400 (EDT)
> Daniel Eischen <deischen@freebsd.org> wrote:
>> On Mon, 24 May 2010, Chris Vine wrote:
>>
>>> Hi,
>>>
>>> I am the upstream maintainer of efax-gtk and I am told recent
>>> versions of the program will not compile on the FreeBSD port of
>>> debian, because FreeBSD does not appear to provide
>>> pthread_condattr_setclock() to set a monotonic clock on condition
>>> variables.
>>>
>>> The program configuration script calls up sysconf() to determine
>>> whether the POSIX advanced realtime option (_SC_MONOTONIC_CLOCK) is
>>> provided, and FreeBSD's sysconf() indicates that it is. Is anything
>>> else needed to enable monotonic clocks on BSD, or is sysconf()
>>> incorrectly advertising the implementation of monotonic clocks in
>>> BSD's libc?
>>
>> What version of FreeBSD are you using? The code looks like it
>> tries to use CLOCK_MONOTONIC if specified. From
>> src/lib/libthr/thread/thr_init.c:
>>
>> int
>> _pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t
>> clock_id) {
>> if (attr == NULL || *attr == NULL)
>> return (EINVAL);
>> if (clock_id != CLOCK_REALTIME &&
>> clock_id != CLOCK_VIRTUAL &&
>> clock_id != CLOCK_PROF &&
>> clock_id != CLOCK_MONOTONIC) {
>> return (EINVAL);
>> }
>> (*attr)->c_clockid = clock_id;
>> return (0);
>> }
>>
>> Are you getting an error from pthread_condattr_setclock() or is
>> it just not functioning correctly?
>
> The function is entirely missing from the pthread.h header. I don't use
> FreeBSD but the problem arises on the version of FreeBSD used by
> debian. I don't know what that is, I am afraid.
The prototype has been in <pthread.h> since Oct 2005, and is in
FreeBSD version 7 and subsequent.
See revision 1.40:
http://www.freebsd.org/cgi/cvsweb.cgi/src/include/pthread.h
http://www.freebsd.org/cgi/cvsweb.cgi/src/include/pthread.h.diff?r1=1.39;r2=1.40
--
DE
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.1005241057350.6311>
