Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 323e4fb

Browse files
committed
Merged fix added for recent changes in non-threading environments.
2 parents 57c2237 + f050903 commit 323e4fb

2 files changed

Lines changed: 28 additions & 7 deletions

File tree

Lib/logging/__init__.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -914,9 +914,12 @@ def flush(self):
914914
"""
915915
Flushes the stream.
916916
"""
917-
with self.lock:
917+
self.acquire()
918+
try:
918919
if self.stream and hasattr(self.stream, "flush"):
919920
self.stream.flush()
921+
finally:
922+
self.release()
920923

921924
def emit(self, record):
922925
"""
@@ -965,13 +968,16 @@ def close(self):
965968
"""
966969
Closes the stream.
967970
"""
968-
with self.lock:
971+
self.acquire()
972+
try:
969973
if self.stream:
970974
self.flush()
971975
if hasattr(self.stream, "close"):
972976
self.stream.close()
973977
StreamHandler.close(self)
974978
self.stream = None
979+
finally:
980+
self.release()
975981

976982
def _open(self):
977983
"""

Lib/logging/handlers.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -593,11 +593,14 @@ def close(self):
593593
"""
594594
Closes the socket.
595595
"""
596-
with self.lock:
596+
self.acquire()
597+
try:
597598
if self.sock:
598599
self.sock.close()
599600
self.sock = None
600601
logging.Handler.close(self)
602+
finally:
603+
self.release()
601604

602605
class DatagramHandler(SocketHandler):
603606
"""
@@ -792,9 +795,12 @@ def close (self):
792795
"""
793796
Closes the socket.
794797
"""
795-
with self.lock:
798+
self.acquire()
799+
try:
796800
self.socket.close()
797801
logging.Handler.close(self)
802+
finally:
803+
self.release()
798804

799805
def mapPriority(self, levelName):
800806
"""
@@ -1138,8 +1144,11 @@ def flush(self):
11381144
11391145
This version just zaps the buffer to empty.
11401146
"""
1141-
with self.lock:
1147+
self.acquire()
1148+
try:
11421149
self.buffer = []
1150+
finally:
1151+
self.release()
11431152

11441153
def close(self):
11451154
"""
@@ -1189,20 +1198,26 @@ def flush(self):
11891198
11901199
The record buffer is also cleared by this operation.
11911200
"""
1192-
with self.lock:
1201+
self.acquire()
1202+
try:
11931203
if self.target:
11941204
for record in self.buffer:
11951205
self.target.handle(record)
11961206
self.buffer = []
1207+
finally:
1208+
self.release()
11971209

11981210
def close(self):
11991211
"""
12001212
Flush, set the target to None and lose the buffer.
12011213
"""
12021214
self.flush()
1203-
with self.lock:
1215+
self.acquire()
1216+
try:
12041217
self.target = None
12051218
BufferingHandler.close(self)
1219+
finally:
1220+
self.release()
12061221

12071222

12081223
class QueueHandler(logging.Handler):

0 commit comments

Comments
 (0)