summaryrefslogtreecommitdiffstats
path: root/Lib/logging
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-08-16 16:27:01 (GMT)
committerGitHub <noreply@github.com>2020-08-16 16:27:01 (GMT)
commit08f0a2109297e8a64e8636d47dce737e5b7ccf2c (patch)
treedf5758719cf7b92d899e5c2dc8b5d37c0352f2ef /Lib/logging
parent243458115e2cb295fb5bbb61e6ac528c6b2cf5be (diff)
downloadcpython-08f0a2109297e8a64e8636d47dce737e5b7ccf2c.zip
cpython-08f0a2109297e8a64e8636d47dce737e5b7ccf2c.tar.gz
cpython-08f0a2109297e8a64e8636d47dce737e5b7ccf2c.tar.bz2
[3.8] bpo-41503: Fix race between setTarget and flush in logging.handlers.MemoryHandler (GH-21765) (GH-21898)
(cherry picked from commit 2353d77fad7ed9d11d8a4d66b5dd1306cdb94125) Co-authored-by: Irit Katriel <iritkatriel@yahoo.com> Automerge-Triggered-By: @vsajip
Diffstat (limited to 'Lib/logging')
-rw-r--r--Lib/logging/handlers.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index 34ff7a0..29802b6 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -1294,7 +1294,11 @@ class MemoryHandler(BufferingHandler):
"""
Set the target handler for this handler.
"""
- self.target = target
+ self.acquire()
+ try:
+ self.target = target
+ finally:
+ self.release()
def flush(self):
"""