
On Sat, Sep 1, 2012 at 7:01 PM, Hartmut Kaiser <hartmut.kaiser@gmail.com> wrote:
Hey all,
Why is the minimally possible stack size in Boost.Context on Windows set to be 64k? This seems to be way too high for applications where only a minimal amount of stack is required. I assume, that since Boost.Context allocates the stack using VirtualAlloc the minimum possible value should be equal to the page size (see http://msdn.microsoft.com/en-us/library/windows/desktop/aa366887(v=vs.85).as px).
A thread's minimum stack size is Windows' allocation granularity, which is not the size of a single page. Currently this is 64KB. See http://msdn.microsoft.com/en-us/library/windows/desktop/ms686774.aspx VirtualAlloc also rounds up allocations to this granularity. If you request 4KB, you'll actually waste a lot of space and get 64KB. The allocation granularity can be determined using GetSystemInfo(). -- Cory Nelson http://int64.org