This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sem_trywait returns EAGAIN (rather than returning -1 and setting errno)

You have a point regarding errno, but unfortunately, this is how the
is written. If it's intentional that cygwin deviate from posix 1.b, I'm fine
with that - I can code accordingly.  FYI - I went to the

    The Open Group Base Specifications Issue 6
    technically identical to IEEE Std 1003.1-2001
    Copyright  2001 The IEEE and The Open Group

(because this was easier to find on-line and it should be close enough,)
and snipped this fragment from the sem_trywait man page...

    The sem_trywait() and sem_wait() functions shall return zero if the
    process  successfully performed the semaphore lock operation on the
    semaphore designated by  sem. If the call was unsuccessful, the state of
    the semaphore shall be unchanged, and the function shall return a value
    of -1 and set errno to indicate the error.

I reading the wrong version of the standard?  This is how sem_trywait
worked on QNX; Where can I find the cygwin manual pages for the


PS. Previous systems I have worked on put errno in thread specific data
the code using errno thread safe; the POSIX standard now specifies that
errno can be
something other than an "extern int" - it simply has to be a lvalue - you
make errno be a macro that maps to the thread specific data location.

----- Original Message -----
From: "Christopher Faylor" <>
To: <>
Sent: Tuesday, February 26, 2002 5:19 PM
Subject: Re: sem_trywait returns EAGAIN (rather than returning -1 and
setting errno)

> On Wed, Feb 27, 2002 at 09:08:54AM +1100, Robert Collins wrote:
> >
> >
> >> -----Original Message-----
> >> From: Christopher Faylor []
> >
> >> On Tue, Feb 26, 2002 at 08:37:35PM +1100, Robert Collins wrote:
> >> >The problem should _not_ be endemic in the pthreads code, as
> >> I rewrote
> >> >nearly all the pthread* functions from the P1003.1 draft spec.
> >>
> >> % grep 'return E'
> >
> >*Sigh*. That just shows that that is what the code is meant to do.
> In other words, RTFM, cgf.  When you think about it, it would make zero
> sense for functions which dealt with threads to set errno.
> Sorry about that.  I REALLY should have known better on multiple counts.
> (hangs head in shame)
> cgf
> --
> Unsubscribe info:
> Bug reporting:
> Documentation:
> FAQ:         

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]