From 5800b271043d52d34f22f68ad6c0339d2c4bc04a Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sun, 1 Nov 2009 12:05:48 +0000 Subject: [PATCH] Merged revisions 76007 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r76007 | antoine.pitrou | 2009-11-01 12:58:22 +0100 (dim., 01 nov. 2009) | 3 lines Buffered I/O: optimize lock taking in the common non-contended case. ........ --- Modules/_io/bufferedio.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c index 3dec67b5c6..dd4e53f0f2 100644 --- a/Modules/_io/bufferedio.c +++ b/Modules/_io/bufferedio.c @@ -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); -- 2.50.1