Buffered I/O: optimize lock taking in the common non-contended case.

This commit is contained in:
Antoine Pitrou 2009-11-01 11:58:22 +00:00
parent d35b8c7899
commit e50efaad9f

View file

@ -260,9 +260,11 @@ typedef struct {
#ifdef WITH_THREAD
#define ENTER_BUFFERED(self) \
Py_BEGIN_ALLOW_THREADS \
PyThread_acquire_lock(self->lock, 1); \
Py_END_ALLOW_THREADS
if (!PyThread_acquire_lock(self->lock, 0)) { \
Py_BEGIN_ALLOW_THREADS \
PyThread_acquire_lock(self->lock, 1); \
Py_END_ALLOW_THREADS \
}
#define LEAVE_BUFFERED(self) \
PyThread_release_lock(self->lock);