1 // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 // This creates a bunch of descheduling tasks that run concurrently
12 // while holding onto C stacks
20 #[link(name = "rust_test_helpers")]
22 pub fn rust_dbg_call(cb: extern "C" fn(libc::uintptr_t) -> libc::uintptr_t,
23 data: libc::uintptr_t)
28 extern fn cb(data: libc::uintptr_t) -> libc::uintptr_t {
33 count(data - 1) + count(data - 1)
37 fn count(n: libc::uintptr_t) -> libc::uintptr_t {
39 rustrt::rust_dbg_call(cb, n)
44 for _ in range(0u, 100) {
46 assert_eq!(count(5), 16);