Commit 50198222 authored by Vinay Sajip's avatar Vinay Sajip

Fix added for recent changes in non-threading environments.

parent 16f6a29b
...@@ -828,9 +828,12 @@ class StreamHandler(Handler): ...@@ -828,9 +828,12 @@ class StreamHandler(Handler):
""" """
Flushes the stream. Flushes the stream.
""" """
with self.lock: self.acquire()
try:
if self.stream and hasattr(self.stream, "flush"): if self.stream and hasattr(self.stream, "flush"):
self.stream.flush() self.stream.flush()
finally:
self.release()
def emit(self, record): def emit(self, record):
""" """
...@@ -901,13 +904,16 @@ class FileHandler(StreamHandler): ...@@ -901,13 +904,16 @@ class FileHandler(StreamHandler):
""" """
Closes the stream. Closes the stream.
""" """
with self.lock: self.acquire()
try:
if self.stream: if self.stream:
self.flush() self.flush()
if hasattr(self.stream, "close"): if hasattr(self.stream, "close"):
self.stream.close() self.stream.close()
StreamHandler.close(self) StreamHandler.close(self)
self.stream = None self.stream = None
finally:
self.release()
def _open(self): def _open(self):
""" """
......
...@@ -562,10 +562,13 @@ class SocketHandler(logging.Handler): ...@@ -562,10 +562,13 @@ class SocketHandler(logging.Handler):
""" """
Closes the socket. Closes the socket.
""" """
with self.lock: self.acquire()
try:
if self.sock: if self.sock:
self.sock.close() self.sock.close()
self.sock = None self.sock = None
finally:
self.release()
logging.Handler.close(self) logging.Handler.close(self)
class DatagramHandler(SocketHandler): class DatagramHandler(SocketHandler):
...@@ -767,9 +770,12 @@ class SysLogHandler(logging.Handler): ...@@ -767,9 +770,12 @@ class SysLogHandler(logging.Handler):
""" """
Closes the socket. Closes the socket.
""" """
with self.lock: self.acquire()
try:
if self.unixsocket: if self.unixsocket:
self.socket.close() self.socket.close()
finally:
self.release()
logging.Handler.close(self) logging.Handler.close(self)
def mapPriority(self, levelName): def mapPriority(self, levelName):
...@@ -1097,8 +1103,11 @@ class BufferingHandler(logging.Handler): ...@@ -1097,8 +1103,11 @@ class BufferingHandler(logging.Handler):
This version just zaps the buffer to empty. This version just zaps the buffer to empty.
""" """
with self.lock: self.acquire()
try:
self.buffer = [] self.buffer = []
finally:
self.release()
def close(self): def close(self):
""" """
...@@ -1146,17 +1155,23 @@ class MemoryHandler(BufferingHandler): ...@@ -1146,17 +1155,23 @@ class MemoryHandler(BufferingHandler):
records to the target, if there is one. Override if you want records to the target, if there is one. Override if you want
different behaviour. different behaviour.
""" """
with self.lock: self.acquire()
try:
if self.target: if self.target:
for record in self.buffer: for record in self.buffer:
self.target.handle(record) self.target.handle(record)
self.buffer = [] self.buffer = []
finally:
self.release()
def close(self): def close(self):
""" """
Flush, set the target to None and lose the buffer. Flush, set the target to None and lose the buffer.
""" """
self.flush() self.flush()
with self.lock: self.acquire()
try:
self.target = None self.target = None
BufferingHandler.close(self) BufferingHandler.close(self)
finally:
self.release()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment