// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
// OF THE POSSIBILITY OF SUCH DAMAGE.
-#![feature(slicing_syntax)]
-
use std::{cmp, iter, mem};
use std::thread::Thread;
}
-fn reverse(tperm: &mut [i32], mut k: uint) {
+fn reverse(tperm: &mut [i32], k: uint) {
tperm.slice_to_mut(k).reverse()
}
let mut futures = vec![];
let k = perm.max() / N;
- for (i, j) in range(0, N).zip(iter::count(0, k)) {
+ for (_, j) in range(0, N).zip(iter::count(0, k)) {
let max = cmp::min(j+k, perm.max());
- futures.push(Thread::spawn(move|| {
+ futures.push(Thread::scoped(move|| {
work(perm, j as uint, max as uint)
}))
}
fn main() {
let n = std::os::args().as_slice()
.get(1)
- .and_then(|arg| from_str(arg.as_slice()))
+ .and_then(|arg| arg.parse())
.unwrap_or(2i32);
let (checksum, maxflips) = fannkuch(n);