async-rs / async-std

Async version of the Rust standard library

Home Page:https://async.rs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ways to specify thread stack size

lihe07 opened this issue · comments

commented

When we are trying to spawn a memory costy task with async-std
async_std::task::spawn(some_future())
It throws thread 'async-std/runtime' has overflowed its stack

Although we can solve this problem with the following code:

thread::Builder::new().stack_size(32 * 1024).spawn(|| {
    async_std::task::block_on(some_future())
}).unwrap();

But if async_std also has the specified task stack size, it can save some time.

If that future is a large set of async functions you may be able to break it up manually using a pinned box for some memory indirection, which should help I think.