Skip to content

Conversation

@white-axe
Copy link
Contributor

@white-axe white-axe commented Dec 21, 2023

This pull request adds a spin-plain feature that uses a spinlock-based locking system like the spin feature does, but without using std::thread::sleep. Closes #137.
Edit: This pull request changes the spin feature to only use std::thread::sleep on Unix and Windows. Closes #137.

Some targets like wasm32-unknown-unknown don't support blocking, so you won't be able to use flume on those platforms without this new feature. Even if you enable -Ctarget-feature=+atomics,+bulk-memory,+mutable-globals on the wasm32-unknown-unknown target, flume still doesn't work on the main thread of a web browser, it only works in web workers. See #137 for more details about this, but essentially the problem is that the wait_lock function in flume has two different implementations and both of them are blocking, including the current spinlock-based one.

@melody-rs
Copy link

@zesterer ?

Copy link
Owner

@zesterer zesterer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reminder, this PR flew under the radar.

@white-axe white-axe requested a review from zesterer July 28, 2024 01:38
@zesterer
Copy link
Owner

Great, thanks for the PR!

@melody-rs
Copy link

??

@sug0
Copy link

sug0 commented Aug 13, 2024

maybe a ci wasm build check would be nice? to guarantee that doesn't break again

@melody-rs
Copy link

@zesterer ??

@zesterer zesterer merged commit 3c47bcc into zesterer:master Aug 15, 2024
@zesterer
Copy link
Owner

Sorry about that. I replied, ran CI, then didn't get back to this. Anyhow, much appreciated!

@white-axe white-axe deleted the plain branch August 15, 2024 14:52
@melody-rs
Copy link

Tysm!! Would it be possible to get this published on crates.io as well?

@melody-rs
Copy link

@zesterer I'm sorry for constantly pinging you- but it seems to be the only way to get your attention?

@zesterer
Copy link
Owner

I should have some free time tomorrow to do this, thanks for the reminder.

@melody-rs
Copy link

@zesterer ?

@zesterer
Copy link
Owner

zesterer commented Sep 2, 2024

Not forgotten about this, trying to find the time to write up what turns out to be quite an extensive changelog!

@sug0
Copy link

sug0 commented Sep 2, 2024

take your time, we appreciate your efforts :-)

@zesterer
Copy link
Owner

I've just released 0.11.1, with this change.

@sug0
Copy link

sug0 commented Oct 19, 2024

incredible. thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Senders and receivers are both unusable in browser main thread in WASM

4 participants