diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2020-08-16 16:27:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-16 16:27:01 (GMT) |
commit | 08f0a2109297e8a64e8636d47dce737e5b7ccf2c (patch) | |
tree | df5758719cf7b92d899e5c2dc8b5d37c0352f2ef /Lib/logging | |
parent | 243458115e2cb295fb5bbb61e6ac528c6b2cf5be (diff) | |
download | cpython-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.py | 6 |
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): """ |