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