[Python-bugs-list] [ python-Bugs-433625 ] bug in PyThread_release_lock()
noreply@sourceforge.net
noreply@sourceforge.net
Fri, 15 Jun 2001 19:17:17 -0700
Bugs item #433625, was updated on 2001-06-15 19:17
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=433625&group_id=5470
Category: Threads
Group: Platform-specific
Status: Open
Resolution: None
Priority: 5
Submitted By: Shih-Hao Liu (shihao)
Assigned to: Nobody/Anonymous (nobody)
Summary: bug in PyThread_release_lock()
Initial Comment:
Mutex should be hold when calling
pthread_cond_signal(). This function should look like:
PyThread_release_lock(PyThread_type_lock lock)
{
pthread_lock *thelock = (pthread_lock *)lock;
int status, error = 0;
dprintf(("PyThread_release_lock(%p) called\n",
lock));
status = pthread_mutex_lock( &thelock->mut );
CHECK_STATUS("pthread_mutex_lock[3]");
thelock->locked = 0;
/* ***** call pthread_cond_signal before unlock
mutex */
status = pthread_cond_signal(
&thelock->lock_released );
CHECK_STATUS("pthread_cond_signal");
status = pthread_mutex_unlock( &thelock->mut );
CHECK_STATUS("pthread_mutex_unlock[3]");
/* wake up someone (anyone, if any) waiting on
the lock */
}
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=433625&group_id=5470