I recently started playing around with the new async/await features and wanted to implement a simple channel using the crossbeam channel and the new futures. The crossbeam channel itself isn't futures-aware, neither 0.1 futures nor the new ones, and therefore, I added another internal channel that sends wakers to the sender and when a new value is sent, the sender will wake all enqueued tasks.
I expect the program to print 42 and then finish, which is often the case, but not always: Sometimes, I get an error saying thread 'tokio-runtime-worker-2' panicked at 'NoopWake cannot wake' (backtrace found here) and sometimes a simple thread 'tokio-runtime-worker-2' panicked at 'called 'Result::unwrap()' on an 'Err' value: ()' (backtrace found here). Also, after panicing, the program hangs.
Is this a bug within rust, tokio or crossbeam or have I simply made something wrong?
@Janonard Today I stumbled upon what seems to be the same panic and I created a more minimal example (see here). Did you already open an issue on another repo? (I'm not sure if this belongs to tokio, futures or async/await.)
Hello everyone!
I recently started playing around with the new async/await features and wanted to implement a simple channel using the crossbeam channel and the new futures. The crossbeam channel itself isn't futures-aware, neither 0.1 futures nor the new ones, and therefore, I added another internal channel that sends wakers to the sender and when a new value is sent, the sender will wake all enqueued tasks.
My code is found in this repo: https://github.com/Janonard/rust-noopwake-bug
I expect the program to print
42
and then finish, which is often the case, but not always: Sometimes, I get an error sayingthread 'tokio-runtime-worker-2' panicked at 'NoopWake cannot wake'
(backtrace found here) and sometimes a simplethread 'tokio-runtime-worker-2' panicked at 'called 'Result::unwrap()' on an 'Err' value: ()'
(backtrace found here). Also, after panicing, the program hangs.Is this a bug within rust, tokio or crossbeam or have I simply made something wrong?
Meta
rustc --version --verbose
:The text was updated successfully, but these errors were encountered: