Mercurial > cpython-lru_cache-weakref
diff Python/thread_pthread.h @ 28673:c1ba50790c83 legacy-trunk
Patch #711835: Remove unnecessary lock operations. Will backport to 2.2.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Fri, 18 Apr 2003 11:11:09 +0000 |
| parents | 1562c1e10b49 |
| children | 40d287c3d906 |
line wrap: on
line diff
--- a/Python/thread_pthread.h Fri Apr 18 10:51:14 2003 +0000 +++ b/Python/thread_pthread.h Fri Apr 18 11:11:09 2003 +0000 @@ -497,27 +497,23 @@ status = pthread_mutex_lock( &thelock->mut ); CHECK_STATUS("pthread_mutex_lock[1]"); success = thelock->locked == 0; - if (success) thelock->locked = 1; - status = pthread_mutex_unlock( &thelock->mut ); - CHECK_STATUS("pthread_mutex_unlock[1]"); if ( !success && waitflag ) { /* continue trying until we get the lock */ /* mut must be locked by me -- part of the condition * protocol */ - status = pthread_mutex_lock( &thelock->mut ); - CHECK_STATUS("pthread_mutex_lock[2]"); while ( thelock->locked ) { status = pthread_cond_wait(&thelock->lock_released, &thelock->mut); CHECK_STATUS("pthread_cond_wait"); } - thelock->locked = 1; - status = pthread_mutex_unlock( &thelock->mut ); - CHECK_STATUS("pthread_mutex_unlock[2]"); success = 1; } + if (success) thelock->locked = 1; + status = pthread_mutex_unlock( &thelock->mut ); + CHECK_STATUS("pthread_mutex_unlock[1]"); + if (error) success = 0; dprintf(("PyThread_acquire_lock(%p, %d) -> %d\n", lock, waitflag, success)); return success;
