Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
A couple of months ago, there was a discussion here on r/rust about why there's no semaphore in the rust standard library. I mentioned that it's a deceivingly difficult type to model in a way that would be appropriate for rust's std, but nerd-sniped myself into writing my own (docs.rs link) and thought there might be some interest in the tradeoffs involved and what makes it a difficult synchronization primitive to safely model in a rusty way, and so here we are.
The AutoResetEvent takes care of that, doing Acquire and Release as needed. Source code here if you’re interested, not too long: https://github.com/neosmart/rsevents/blob/master/src/lib.rs