<<On Thu, 27 Feb 2003 08:40:22 -0800 (PST), John Polstra <[EMAIL PROTECTED]> said:

> 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:

Not so (with respect to those other types).  XBD page 367:

# All of the types shall be defined as arithmetic types of an
# appropriate length, with the following exceptions:
# 
# key_t
# pthread_attr_t
# pthread_barrier_t
# pthread_barrierattr_t
# pthread_cond_t
# pthread_condattr_t
# pthread_key_t
# pthread_mutex_t
# pthread_mutexattr_t
# pthread_once_t
# pthread_rwlock_t
# pthread_rwlockattr_t
# pthread_spinlock_t
# trace_attr_t
# trace_event_id_t
# trace_event_set_t
# trace_id_t

SSWG-RT got a bit carried away with pthread_t, I think, because they
define a comparison operation (pthread_equal()) even though such an
operation is never necessary on arithmetic types (the `=' operator can
be used for that purpose).

We could define pthread_t as __intptr_t without making significant
changes to the implementation.

-GAWollman


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

Reply via email to