tower-lsp icon indicating copy to clipboard operation
tower-lsp copied to clipboard

Replace stream::select to stream_select!

Open blmarket opened this issue 6 months ago • 1 comments

futures::stream::select will poll streams in a round-robin fashion, which means one stream can be blocked if the other stream does not have item ready.

It replaces select to futures::stream_select! which just poll stream whichever comes first.

Reference: https://docs.rs/futures/latest/futures/stream/fn.select.html Reference: https://docs.rs/futures/latest/futures/macro.stream_select.html

Note: current master branch is broken and need to apply #406 first.


Demo of bug: https://github.com/blmarket/tower-lsp/blob/buggy-example/tests/buggy.rs

Without patch - it hangs if there are 3 or more logs. It runs okay if we comment out 1 or 2 logs. With patch - it run okay regardless of number of logs

blmarket avatar Feb 25 '24 03:02 blmarket

3 months with no update, so ping here. will ping again next year.

blmarket avatar Jun 21 '24 17:06 blmarket