-
Notifications
You must be signed in to change notification settings - Fork 38
Crossbeam-channel deadlocks when cap = 0 #150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi there, sorry for the delay! Would you mind trying again with the 1.69 release? I believe this may now be fixed. |
Hmm. It's been a while since I messed with this, but consulting the instructions, I tried updating everything and running again. I think I ran
(I've also run However, I've cloned a clean copy of https://github.com/ivmarkov/rust-esp32-std-demo , and I'm getting an error at the end of
(I can add the middle back in if you want, but it looks like just a bunch more of the same.) I'm not sure what to do with this; it looks like an error in an unnamed script file rather than an error in the named file, since that one is a binary, not a source, and I can't run it directly because
Any ideas? |
Note: I found this similar sounding issue: rust-lang/cargo#8182 |
that repo doesn't have a runner set in |
Ah; sorry, I forgot you needed to run it differently; that ran. |
I spent a bit of time trying to get your repro to compile and failed, the backend has come a long way and we solved a similar and maybe related issue in #146. Closing for now. |
Once I managed to get the code to build again, it does indeed seem like the bug no longer occurs. Thanks |
Glad to hear that! |
I'm not sure who to file this report with, haha, but here seemed like the most correct, AFAICT.
I cloned https://github.com/ivmarkov/rust-esp32-std-demo and got that working, which was nice. I then made a few modifications, and got those to work. As I started with something more complicated, I wanted CSP-like channels, so I added the crossbeam-channel dependency, and I copied in their fibonacci example. Then I had some problems, which I've so far narrowed down to: on an ESP32, channels block forever if the channel cap is 0. I compiled the example in a new project targeting my laptop and it ran fine with a cap of 0 or 3, but on ESP32 it permablocked with a cap of 0 but worked with a cap of 3. This suggests to me it's some bug in the ESP Rust code, or at least some kind of incompatibility. Any idea what's wrong? If, after inspection, you're confident the problem is somewhere else, let me know where I should send the bug report.
My modified version of the code can be found at https://github.com/Erhannis/rust-esp32-std-demo/tree/hack . See this function.
Here's the log when the code blocks, (slightly annotated) :
If I set
cap
to 3 (presumably anything greater than zero), it works fine:Meta
I'm using an ESP32 dev board - on the back of the board it says "ESP32 DEVKITV1.", and on the chip cover it says "ESP-WROOM-32", and some other numbers?
rustc --version --verbose
:The text was updated successfully, but these errors were encountered: