From a924fc7abc2d8788a4a9fa2cbef2caa5c5992ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Fran=C3=A7ois=20Natali?= Date: Sun, 25 May 2014 14:12:12 +0100 Subject: Issue #21565: multiprocessing: use contex-manager protocol for synchronization primitives. --- Lib/multiprocessing/heap.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'Lib/multiprocessing/heap.py') diff --git a/Lib/multiprocessing/heap.py b/Lib/multiprocessing/heap.py index 344a45f89d..9e3016c506 100644 --- a/Lib/multiprocessing/heap.py +++ b/Lib/multiprocessing/heap.py @@ -216,9 +216,8 @@ class Heap(object): assert 0 <= size < sys.maxsize if os.getpid() != self._lastpid: self.__init__() # reinitialize after fork - self._lock.acquire() - self._free_pending_blocks() - try: + with self._lock: + self._free_pending_blocks() size = self._roundup(max(size,1), self._alignment) (arena, start, stop) = self._malloc(size) new_stop = start + size @@ -227,8 +226,6 @@ class Heap(object): block = (arena, start, new_stop) self._allocated_blocks.add(block) return block - finally: - self._lock.release() # # Class representing a chunk of an mmap -- can be inherited by child process -- cgit v1.2.1