summaryrefslogtreecommitdiff
path: root/Lib/multiprocessing/shared_memory.py
diff options
context:
space:
mode:
authorPierre Glaser <pierreglaser@msn.com>2019-05-10 22:59:08 +0200
committerAntoine Pitrou <antoine@python.org>2019-05-10 22:59:08 +0200
commitf22cc69b012f52882d434a5c44a004bc3aa5c33c (patch)
tree03dc6cf6c5449ab30ac1243140b6b8f3b2359089 /Lib/multiprocessing/shared_memory.py
parentd0d64ad1f5f1dc1630004091d7f8209546c1220a (diff)
downloadcpython-git-f22cc69b012f52882d434a5c44a004bc3aa5c33c.tar.gz
bpo-36867: Make semaphore_tracker track other system resources (GH-13222)
The multiprocessing.resource_tracker replaces the multiprocessing.semaphore_tracker module. Other than semaphores, resource_tracker also tracks shared_memory segments. Patch by Pierre Glaser.
Diffstat (limited to 'Lib/multiprocessing/shared_memory.py')
-rw-r--r--Lib/multiprocessing/shared_memory.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/Lib/multiprocessing/shared_memory.py b/Lib/multiprocessing/shared_memory.py
index ebc8885876..184e36704b 100644
--- a/Lib/multiprocessing/shared_memory.py
+++ b/Lib/multiprocessing/shared_memory.py
@@ -113,6 +113,9 @@ class SharedMemory:
self.unlink()
raise
+ from .resource_tracker import register
+ register(self._name, "shared_memory")
+
else:
# Windows Named Shared Memory
@@ -231,7 +234,9 @@ class SharedMemory:
called once (and only once) across all processes which have access
to the shared memory block."""
if _USE_POSIX and self._name:
+ from .resource_tracker import unregister
_posixshmem.shm_unlink(self._name)
+ unregister(self._name, "shared_memory")
_encoding = "utf8"