Events: Difference between revisions
Content added Content deleted
(Add Rust implementation) |
|||
Line 1,072: | Line 1,072: | ||
════════════ program halted. |
════════════ program halted. |
||
</pre> |
</pre> |
||
=={{header|Rust}}== |
|||
Rust ensures memory safety at compile-time without needing a garbage collector or runtime. There are several concurrency primitives in it's standard library. |
|||
<lang Rust> |
|||
use std::{sync::mpsc, thread, time::Duration}; |
|||
fn main() -> Result<(), Box<dyn std::error::Error>> { |
|||
println!("[1] Starting"); |
|||
let (tx, rx) = mpsc::channel(); |
|||
thread::spawn(move || { |
|||
println!("[2] Waiting for event"); |
|||
rx.recv(); |
|||
println!("[2] Received event"); |
|||
}); |
|||
thread::sleep(Duration::from_secs(1)); |
|||
println!("[1] Sending event"); |
|||
tx.send(())?; |
|||
thread::sleep(Duration::from_secs(1)); |
|||
Ok(()) |
|||
} |
|||
</lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |