Fedorov7890
Fedorov7890

Reputation: 1245

Efficient synchronization primitives for a single-threaded async app in Rust

I have a tokio-based single-threaded async app where using Arcs or other Sync types seems to be an overhead. Because there is no need for synchronization between threads, I am looking for something like tokio::sync::oneshot::channel, Sender and Receiver of which should be !Sync and could be wrapped into Rc instead of Arc.

Are there any specially crafted synchronization primitives for usage in single-threaded async apps in Rust?

Upvotes: 7

Views: 1366

Answers (1)

Matthias247
Matthias247

Reputation: 10396

You can take a look at the various Local types in futures-intrusive. E.g. the LocalOneshotChannel requires no mutex.

Upvotes: 3

Related Questions