Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Rsevents-extra Alternatives
Similar projects and alternatives to rsevents-extra based on common topics and language
-
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.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
rsevents-extra reviews and mentions
-
Implementing truly safe semaphores in rust
A couple of months ago there was a discussion on r/rust about why the standard library doesn't include a semaphore and I mentioned that it's a deceivingly difficult synchronization primitive to safely model in a rusty way. I ended up nerd-sniping myself into trying anyway [0], [1] and decided to share a writeup with some of the issues I ran into trying to come up with a safe and no/low-cost rusty interface for a semaphore.
It ended up being a great example of some of the things I love about the rust ecosystem (though it did also reveal some of the weaknesses of the rust ro^rw borrow semantics) in terms of the thought and care it takes to make an api that's resistant to misuse but still (hopefully) ergonomic.
[0]: https://github.com/neosmart/rsevents-extra
[1]: https://docs.rs/rsevents-extra/latest/rsevents_extra/struct....
-
Implementing truly safe semaphores in rust, and the cost we pay for safety
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.
-
Finding the “Second Bug” in Glibc’s Condition Variable
Rust’s synchronization types are built on the semantics of shared objects, with the synchronization object owning the data access to which is channeled exclusively via the synchronization type.
Events and signals aren’t intended to be used off you’re trying to share ownership of memory or data - you should use the std types in that case. They’re for signaling between threads or for building your own synchronization objects atop of. For example, an auto reset event can be used in lieu of a one-bit channel (sort of like Mpmc<()>) and manual reset events can be used to implement the same in broadcast mode, much more efficiently than the channel crates. A common usage is to block until an event is available or a shutdown has been requested - in lieu of manually polling an AtomicBool and aborting if it is true, making your code more responsive (no delay between polls) and more efficient (no repeated polling, no busy waits, etc). They can be used to signal state transitions or readiness, which doesn’t have anything to “own”, for example, the rsevents-extra crate [0] implements a countdown event (event becomes available when n outstanding tasks have finished in parallel threads) or a semaphore (restricting concurrency to a region of code, not limiting access to a variable or object).
[0]: https://github.com/neosmart/rsevents-extra
-
rsevents-extra 0.2.0 released: useful synchronization primitives for multithreaded processing
rsevents-extra v0.2.0 has been published to crates.io and is available under the MIT license on GitHub. The repository README is just a rundown of the crate's components and doesn't contain any code or examples, but the crate documentation has been thoroughly overhauled and contains extensive type- and function-level documentation plus examples.
-
A note from our sponsor - InfluxDB
www.influxdata.com | 28 Apr 2024
Stats
neosmart/rsevents-extra is an open source project licensed under GNU General Public License v3.0 or later which is an OSI approved license.
The primary programming language of rsevents-extra is Rust.
Sponsored