John Polstra <[EMAIL PROTECTED]> writes:
> In article <[EMAIL PROTECTED]>,
> Craig Rodrigues  <[EMAIL PROTECTED]> wrote:
> > 
> > pthread_self() returns something of type pthread_t.
> > This code works under Linux, because pthread_t is mapped to an integer value.
> > 
> > However, on FreeBSD, pthread_t is a pointer to struct pthread, so this
> > code does not compile:
> 
> FreeBSD violates POSIX in this respect.  The 1003.1 standard
> (section 2.5) requires pthread_t to be an arithmetic type.  We are
> non-compliant in the same way for almost all of the primary
> thread-related types:
> 
>     pthread_attr_t
>     pthread_mutex_t
>     pthread_mutexattr_t
>     pthread_cond_t
>     pthread_condattr_t
>     pthread_once_t
> 
> We got it right for pthread_key_t, though. :-)

It looks like this requirement was removed in POSIX.1-2001.  A problem
with our implementation is that struct pthread* is in the
implementation namespace, so we can't define these types in
<sys/types.h> as required.

Best regards,
Mike Barcroft

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to