Rust threads are relatively easy to spawn and pass results back from.
use std::thread;
pub fn add_in_future(i1: i32, i2: i32) -> i32 {
let handle = thread::spawn(move || {
i1 + i2
});
handle.join().unwrap()
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_future() {
let expected = 3;
let actual = add_in_future(1, 2);
assert_eq!(expected, actual);
}
}
The add_in_future function sums two numbers in a separate thread.
Then the originating thread consumes the result.
The move keyword moves ownership of variables to the new thread.
This post is just a code snippet written by someone getting started.
No promises are made about code quality.
Version: rustc 1.0.0-beta.4 (850151a75 2015-04-30) (built 2015-04-30)
No comments:
Post a Comment
All comments are moderated