According to the Cygwin sources the function pthread_mutexattr_init (see below) can return EBUSY. As far as I can see in several docs, this is not a valid return value. According to the IEEE Std 1003.1 online docs only ENOMEM or 0 are valid return values.
Besides this, why should this function return a different value after
the first test for "pthread_mutexattr::is_good_object (attr)", EBUSY
than after the second test (0)?
Is this a bug?
Except from the code in winsup/cygwin/thread.cc
.....
/* FIXME: write and test process shared mutex's. */
extern "C" int
pthread_mutexattr_init (pthread_mutexattr_t *attr)
{
if (pthread_mutexattr::is_good_object (attr))
return EBUSY;
*attr = new pthread_mutexattr ();
if (!pthread_mutexattr::is_good_object (attr))
{
delete (*attr);
*attr = NULL;
return ENOMEM;
}
return 0;
}
...
Joost Kraaijeveld
Askesis B.V.
Molukkenstraat 14
6524NB Nijmegen
tel: 024-3888063 / 06-51855277
fax: 024-3608416
email: [EMAIL PROTECTED]
web: www.askesis.nl
smime.p7s
Description: S/MIME cryptographic signature

