parallel-stream icon indicating copy to clipboard operation
parallel-stream copied to clipboard

Requiring `T` to be `Sync` prevents use cases that work with `task:spawn`

Open athei opened this issue 5 years ago • 0 comments

I am wondering why ParallelStream requires T to be Sync where async_std::task::spawn requires the spawned future only to be Send + 'static.

I ran into this issue when trying to convert some code that executes the elements of a Stream in parallel using task::spawn directly + buffer_unordered.

The Stream is Send + 'static but not Sync and therefore I cannot convert it into a ParallelStream. Why does it need the T to be thread safe? It shouldn't be shared across the tasks, does it?

Trying to use it with this stream.

athei avatar Sep 21 '20 09:09 athei