Skip to content

Conversation

rklaehn
Copy link
Collaborator

@rklaehn rklaehn commented Dec 11, 2024

This is a new attempt to do a mem transport based on tokio::sync::mpsc::channel, replacing #86

The big problem of the former PR is that the listener is Clone, so there needs to be some ugly stuff to turn the tokio mpsc channel into a mpmc channel.

So this PR is an experiment to change Listener to be non-Clone and also take a &mut self in accept. Once you do that, implementing a mem channel using a mpsc channel becomes much easier.

I have tried this out in a crate, iroh-blobs, that uses rpc in a pretty complex way, and have not found an issue adapting this. Being able to clone the place that does accept is a bit weird anyway, but I did it because both my favoured memory channel at the time (flume) and the networked channel (quinn) did support it.

@rklaehn rklaehn changed the base branch from main to helpers December 11, 2024 10:51
Base automatically changed from helpers to main December 12, 2024 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

1 participant