about summary refs log tree commit diff
path: root/tests/ui/issues/issue-2190-1.rs
blob: e4e4bf9dbbee54d2061ce123c54f425892737cd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//@ check-pass

use std::thread::Builder;

static GENERATIONS: usize = 1024+256+128+49;

fn spawn(mut f: Box<dyn FnMut() + 'static + Send>) {
    Builder::new().stack_size(32 * 1024).spawn(move || f());
}

fn child_no(x: usize) -> Box<dyn FnMut() + 'static + Send> {
    Box::new(move || {
        if x < GENERATIONS {
            spawn(child_no(x+1));
        }
    })
}

pub fn main() {
    spawn(child_no(0));
}