Ожидание завершения дочерних потоков (пример iron)

Здравствуйте!
Не могу разобраться, как работает функция spawn. По идее, все дочерние потоки должны завершаться вместе с основным (по сути, функция main). Так в документации и так же работают другие языки.
Но как тогда iron делает так?

fn main() {
    fn hello_world(_: &mut Request) -> IronResult<Response> {
        Ok(Response::with((status::Ok, "Hello World!")))
    }

    let _server = Iron::new(hello_world).http("localhost:3000").unwrap();
    println!("On 3000");
}

В его коде нет никаких ухищрений, возвращается, по сути, результат вызова spawn.
В чём я ошибаюсь?

Спасибо.

Помогли разобраться.

1 Симпатия