how to find the thread stack limit?

Alexander Boettcher alexander.boettcher at genode-labs.com
Thu Aug 5 21:20:19 CEST 2021


Hello,

On 05.08.21 04:27, Dan Connolly wrote:
> I'm trying to port this XS JavaScript engine to genode. It wants to know
> the stack limit. Any suggestions on how to do this?
> 
> 
> https://github.com/Moddable-OpenSource/moddable/blob/public/xs/sources/xsCommon.c#L518-L542
> 
> char* fxCStackLimit()
> {
> #if mxWindows
> ULONG_PTR low, high;
> GetCurrentThreadStackLimits(&low, &high);
> return (char*)low + (32 * 1024);
> #elif mxMacOSX
> pthread_t self = pthread_self();
> void* stackAddr = pthread_get_stackaddr_np(self);
> size_t stackSize = pthread_get_stacksize_np(self);
> return (char*)stackAddr - stackSize + (8 * 1024);
> #elif mxLinux
> pthread_attr_t attrs;
> if (pthread_getattr_np(pthread_self(), &attrs) == 0) {
> void* stackAddr;
> size_t stackSize;
> if (pthread_attr_getstack(&attrs, &stackAddr, &stackSize) == 0) {
> return (char*)stackAddr + (4 * 1024);


pthread_attr_getstacksize and friends are supported on Genode, see [0].

Just try out.

Cheers,

Alex.

[0] repos/libports/src/lib/libc/pthread.cc

-- 
Alexander Boettcher
Genode Labs

https://www.genodians.org - https://www.genode.org



More information about the users mailing list