This is the mail archive of the cygwin@cygwin.com 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]

Re: Bug in pthread ?



----- Original Message -----
From: "Jean Barata" <y.curtis@free.fr>
To: <cygwin@cygwin.com>
Sent: Monday, October 01, 2001 6:07 AM
Subject: Bug in pthread ?


> Hello,
>
> Here is the problem:
> if I don't "initialiaze" the mutex in the constructor, it works in any
case.
> but if I "initialize" it, it worked with cygwin1.dll (v1.3.2) and not
> anymore with cygwin1.dll (v1.3.3)
> when calling the function "fct", the program waits forever on the
> "pthread_mutex_lock" instruction (and if I debug it with GDB: &_mutex
is
> NULL)
>
> so, is it a bug or is it normal ???
>
>
> class A {
> public:
>     A();
>     void fct(void);
> private:
>     pthread_mutex_t _mutex;
>     pthread_mutexattr_t _mutex_attr;
> };
>
> A::A() {
>     pthread_mutexattr_init(&_mutex_attr);
>     pthread_mutex_init(&_mutex, &_mutex_attr);
>     pthread_mutex_unlock(&_mutex); /*********** BUG ???
**************/

This is a bug in your code. You are unlocking an already unlocked mutex.
Cygwin should return EPERM to that call - and I note you are note
checking any error codes from the system calls, which is quite dangerou
programming style.

You might like to check
http://www.opengroup.org/onlinepubs/007908799/xsh/pthread_mutex_unlock.h
tml
and
http://www.opengroup.org/onlinepubs/007908799/xsh/pthread_mutex_init.htm
l

Rob

> }
>
> void A::fct(void) {
>     pthread_mutex_lock(&_mutex); /********** WAITING HERE ...
************/
>     ...
>     pthread_mutex_unlock(&_mutex);
> }
>
>
>
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Bug reporting:         http://cygwin.com/bugs.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
>
>


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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