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

Skip to content

Commit f050903

Browse files
committed
Fix added for recent changes in non-threading environments.
1 parent 0abf61d commit f050903

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
@@ -917,9 +917,12 @@ def flush(self):
917917
"""
918918
Flushes the stream.
919919
"""
920-
with self.lock:
920+
self.acquire()
921+
try:
921922
if self.stream and hasattr(self.stream, "flush"):
922923
self.stream.flush()
924+
finally:
925+
self.release()
923926

924927
def emit(self, record):
925928
"""
@@ -970,13 +973,16 @@ def close(self):
970973
"""
971974
Closes the stream.
972975
"""
973-
with self.lock:
976+
self.acquire()
977+
try:
974978
if self.stream:
975979
self.flush()
976980
if hasattr(self.stream, "close"):
977981
self.stream.close()
978982
StreamHandler.close(self)
979983
self.stream = None
984+
finally:
985+
self.release()
980986

981987
def _open(self):
982988
"""

Lib/logging/handlers.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -553,11 +553,14 @@ def close(self):
553553
"""
554554
Closes the socket.
555555
"""
556-
with self.lock:
556+
self.acquire()
557+
try:
557558
if self.sock:
558559
self.sock.close()
559560
self.sock = None
560561
logging.Handler.close(self)
562+
finally:
563+
self.release()
561564

562565
class DatagramHandler(SocketHandler):
563566
"""
@@ -752,10 +755,13 @@ def close (self):
752755
"""
753756
Closes the socket.
754757
"""
755-
with self.lock:
758+
self.acquire()
759+
try:
756760
if self.unixsocket:
757761
self.socket.close()
758762
logging.Handler.close(self)
763+
finally:
764+
self.release()
759765

760766
def mapPriority(self, levelName):
761767
"""
@@ -1096,8 +1102,11 @@ def flush(self):
10961102
10971103
This version just zaps the buffer to empty.
10981104
"""
1099-
with self.lock:
1105+
self.acquire()
1106+
try:
11001107
self.buffer = []
1108+
finally:
1109+
self.release()
11011110

11021111
def close(self):
11031112
"""
@@ -1147,20 +1156,26 @@ def flush(self):
11471156
11481157
The record buffer is also cleared by this operation.
11491158
"""
1150-
with self.lock:
1159+
self.acquire()
1160+
try:
11511161
if self.target:
11521162
for record in self.buffer:
11531163
self.target.handle(record)
11541164
self.buffer = []
1165+
finally:
1166+
self.release()
11551167

11561168
def close(self):
11571169
"""
11581170
Flush, set the target to None and lose the buffer.
11591171
"""
11601172
self.flush()
1161-
with self.lock:
1173+
self.acquire()
1174+
try:
11621175
self.target = None
11631176
BufferingHandler.close(self)
1177+
finally:
1178+
self.release()
11641179

11651180

11661181
class QueueHandler(logging.Handler):

0 commit comments

Comments
 (0)