Add `name` parameter to a `SharedMemoryManager.ShareableList` method
Open
Beginner friendly
Nobody has claimed this yet.
stdlib
type-feature
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 36k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 558
Description
Feature or enhancement
I would like to pass a name for shared list from SharedMemoryManager but I apparently cannot do this.
with SharedMemoryManager() as smm:
my_shared_list = smm.ShareableList(sequence=range(10),name="special name")
pass
What I get:
my_shared_list = smm.ShareableList(sequence=range(10),name="special name")
TypeError: SharedMemoryManager.ShareableList() got an unexpected keyword argument 'name'
Possible solution
Just change method ShareableList in the bottom of this source file to following:
def ShareableList(self, sequence, name=None):
"""Returns a new ShareableList instance populated with the values
from the input sequence, to be tracked by the manager."""
with self._Client(self._address, authkey=self._authkey) as conn:
sl = shared_memory.ShareableList(sequence=sequence,name=name)
try:
dispatch(conn, None, 'track_segment', (sl.shm.name,))
except BaseException as e:
sl.shm.unlink()
raise e
return sl
I wonder
Why this feature is not implemented from the very beggining?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Lib/multiprocessing/managers.py at the SharedMemoryManager.ShareableList method near the bottom of the file, then compare it with shared_memory.ShareableList's name parameter. Done means the manager method accepts and forwards name while retaining its tracking and cleanup behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 60/100