Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Feb 2000 11:29:57 -0500 (EST)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        Thimble Smith <tim@mysql.com>, current@FreeBSD.ORG, jasone@FreeBSD.ORG
Subject:   Re: pthread.h and unistd.h
Message-ID:  <Pine.SUN.3.91.1000217112415.29715A-100000@pcnet1.pcnet.com>
In-Reply-To: <Pine.BSF.4.21.0002180148220.59405-100000@alphplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 18 Feb 2000, Bruce Evans wrote:

> On Thu, 17 Feb 2000, Daniel Eischen wrote:
> 
> > On Thu, 17 Feb 2000, Thimble Smith wrote:
> > 
> > > Hi.  I recently updated from -stable to -current.  I notice now that
> > > pthread.h relies on #defines that are in unistd.h; so in order to use
> > > pthread_attr_setscope you have to include unistd.h before pthread.h.
> > > 
> > > Is this standard behaviour?  I'm working with MySQL, and unistd.h is
> > > included after pthread.h; should I have that code changed, or should
> > > FreeBSD somehow compensate for this?
> > 
> > I've read the POSIX spec, and it looks like pthread.h should include
> > unistd.h so that the #defines you refer to are properly defined. 
> 
> It can't include <unistd.h> or even <sys/unistd.h>, at least in
> POSX.1-1996, because even the latter defines names that are not reserved
> for <pthread.h>.  E.g., <sys/unistd.h> defines SEEK_SET, but the only
> non-implementation reserved for <pthread.h> are ones beginning with
> pthread_ or PTHREAD_, or ending with _t.
> 
> However, including <sys/unistd.h> wouldn't add much to the existing
> namespace violation from including <sys/types.h>, <sys/time.h>,
> <sys/signal.h>, <limits.h> and <sched.h>.
> 
> > Solaris 2.5.1 pthread.h doesn't include <unistd.h> directly, but does
> > include <sys/signal.h> which includes <unistd.h>.
> 
> This seems to be a bug Solaris 2.5.1.  Our <sys/signal.h> avoids
> including <sys/unistd.h> by including <sys/_posix.h> to get more
> fundamental feature test macros for the visibility of the POSIX.1b
> extensions.

It seems to be fixed under Solaris 2.7.

How about we remove the #if defined()s for:

  _POSIX_THREAD_PROCESS_SHARED
  _POSIX_THREAD_PRIO_PROTECT
  _POSIX_THREAD_PRIO_INHERIT
  _POSIX_THREAD_PRIORITY_SCHEDULING

from our <pthread.h>?

Dan Eischen
eischen@vigrid.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.1000217112415.29715A-100000>