[Python-checkins] r76007 - python/trunk/Modules/_io/bufferedio.c
antoine.pitrou
python-checkins at python.org
Sun Nov 1 12:58:22 CET 2009
Author: antoine.pitrou
Date: Sun Nov 1 12:58:22 2009
New Revision: 76007
Log:
Buffered I/O: optimize lock taking in the common non-contended case.
Modified:
python/trunk/Modules/_io/bufferedio.c
Modified: python/trunk/Modules/_io/bufferedio.c
==============================================================================
--- python/trunk/Modules/_io/bufferedio.c (original)
+++ python/trunk/Modules/_io/bufferedio.c Sun Nov 1 12:58:22 2009
@@ -260,9 +260,11 @@
#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);
More information about the Python-checkins
mailing list