https://github.com/eschwart/nicesync-rs
Rust Concurrency and Thread Blocking
https://github.com/eschwart/nicesync-rs
blocking concurrency rust threads
Last synced: 8 months ago
JSON representation
Rust Concurrency and Thread Blocking
- Host: GitHub
- URL: https://github.com/eschwart/nicesync-rs
- Owner: eschwart
- Created: 2023-07-13T08:27:07.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-13T08:27:09.000Z (almost 3 years ago)
- Last Synced: 2025-06-04T07:57:22.994Z (about 1 year ago)
- Topics: blocking, concurrency, rust, threads
- Language: Rust
- Homepage:
- Size: 1.95 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# nicesync-rs
## Description
This is a just quick and short demonstration of my understanding of concurrency and conditional thread blocking utilizing the [CondVar](https://doc.rust-lang.org/std/sync/struct.Condvar.html) functionality in the [rust](https://www.rust-lang.org/) programming language.
## Usage
When you run the program it'll continuously read input through *stdin*. Enter `69` to have the word "hehe" written to the terminal. To exit to program, either enter `420` or just leave with `CTRL-C`.
## How it works
When starting the program, before initiating any sort of input through `stdin`, an external thread is initialized which essentially does nothing, consuming no CPU time, until a certain variable is changed. While the thread is blocked, the main thread asks for the user to input shit. If the user inputs a `69` or `420` the variable is modified and then the external thread is *notified* of the modification of the shared variable. Upon notification, the external thread wakes and checks if the shared variable was modified to a particular value. If all goes well, the external thread completes its little sub-task and continues to loop, of course until a `420` is entered where it would then end itself.