• A
    Revise std::thread API to join by default · a27fbac8
    Aaron Turon 提交于
    This commit is part of a series that introduces a `std::thread` API to
    replace `std::task`.
    
    In the new API, `spawn` returns a `JoinGuard`, which by default will
    join the spawned thread when dropped. It can also be used to join
    explicitly at any time, returning the thread's result. Alternatively,
    the spawned thread can be explicitly detached (so no join takes place).
    
    As part of this change, Rust processes now terminate when the main
    thread exits, even if other detached threads are still running, moving
    Rust closer to standard threading models. This new behavior may break code
    that was relying on the previously implicit join-all.
    
    In addition to the above, the new thread API also offers some built-in
    support for building blocking abstractions in user space; see the module
    doc for details.
    
    Closes #18000
    
    [breaking-change]
    a27fbac8
lib.rs 61.2 KB