MCPcopy Index your code
hub / github.com/faif/python-patterns / ObjectPool

Class ObjectPool

patterns/creational/pool.py:35–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33
34
35class ObjectPool:
36 def __init__(self, queue: Queue, auto_get: bool = False) -> None:
37 self._queue = queue
38 self.item = self._queue.get() if auto_get else None
39
40 def __enter__(self) -> str:
41 if self.item is None:
42 self.item = self._queue.get()
43 return self.item
44
45 def __exit__(
46 self,
47 Type: Union[type[BaseException], None],
48 value: Union[BaseException, None],
49 traceback: Union[TracebackType, None],
50 ) -> None:
51 if self.item is not None:
52 self._queue.put(self.item)
53 self.item = None
54
55 def __del__(self) -> None:
56 if self.item is not None:
57 self._queue.put(self.item)
58 self.item = None
59
60
61def main():

Calls

no outgoing calls

Tested by 3

test_items_recoilMethod · 0.72
test_frozen_poolMethod · 0.72