ipfs / go-mfs

An in memory model of a mutable IPFS filesystem
MIT License
46 stars 26 forks source link

Do not store context in structs, and other fixes #84

Closed gammazero closed 3 years ago

gammazero commented 3 years ago

Stop storing context in structs, and instead pass a context as a function argument in the places where support for cancellation is needed.

Much of the functionality does not need to support cancelation, and even in some cases where a request may have been canceled, letting the function complete is preferable to avoid partial updates to MFS. Cancellation only remains in places where a caller may be waiting for a signal that something has completed.

This PR will replace #58

Part of the motivation for this PR is in preparation for moving this package into a new repo shared by go-ipfs-files and go-unixfs, so that fixes can be reviewed before placing files in a new repo. This PR can be canceled if a more complete rewrite is preferred to fixing the issues handled by this PR.

welcome[bot] commented 3 years ago

Thank you for submitting this PR! A maintainer will be here shortly to review it. We are super grateful, but we are also overloaded! Help us by making sure that:

Getting other community members to do a review would be great help too on complex PRs (you can ask in the chats/forums). If you are unsure about something, just leave us a comment. Next steps:

We currently aim to provide initial feedback/triaging within two business days. Please keep an eye on any labelling actions, as these will indicate priorities and status of your contribution. We are very grateful for your contribution!

gammazero commented 3 years ago

I am concerned about is that this PR makes breaking API changes. If that is going to be a problem, then I can make a smaller PR with just the fixes and TODO items, and save the API changes for when this moves to another repo.

gammazero commented 3 years ago

Closing to save API changes for a later incarnation of mfs.