MCPcopy Index your code
hub / github.com/RustPython/RustPython / _SharedMemoryTracker

Class _SharedMemoryTracker

Lib/multiprocessing/managers.py:1253–1287  ·  view source on GitHub ↗

Manages one or more shared memory segments.

Source from the content-addressed store, hash-verified

1251
1252if HAS_SHMEM:
1253 class _SharedMemoryTracker:
1254 "Manages one or more shared memory segments."
1255
1256 def __init__(self, name, segment_names=[]):
1257 self.shared_memory_context_name = name
1258 self.segment_names = segment_names
1259
1260 def register_segment(self, segment_name):
1261 "Adds the supplied shared memory block name to tracker."
1262 util.debug(f"Register segment {segment_name!r} in pid {getpid()}")
1263 self.segment_names.append(segment_name)
1264
1265 def destroy_segment(self, segment_name):
1266 """Calls unlink() on the shared memory block with the supplied name
1267 and removes it from the list of blocks being tracked."""
1268 util.debug(f"Destroy segment {segment_name!r} in pid {getpid()}")
1269 self.segment_names.remove(segment_name)
1270 segment = shared_memory.SharedMemory(segment_name)
1271 segment.close()
1272 segment.unlink()
1273
1274 def unlink(self):
1275 "Calls destroy_segment() on all tracked shared memory blocks."
1276 for segment_name in self.segment_names[:]:
1277 self.destroy_segment(segment_name)
1278
1279 def __del__(self):
1280 util.debug(f"Call {self.__class__.__name__}.__del__ in {getpid()}")
1281 self.unlink()
1282
1283 def __getstate__(self):
1284 return (self.shared_memory_context_name, self.segment_names)
1285
1286 def __setstate__(self, state):
1287 self.__init__(*state)
1288
1289
1290 class SharedMemoryServer(Server):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected