pthread_attr_setstacklazy()

Updated: April 19, 2023

Set the thread lazy-stack attribute

Synopsis:

#include <pthread.h>

int pthread_attr_setstacklazy(
                    pthread_attr_t * attr,
                    int lazystack );

Arguments:

attr
A pointer to the pthread_attr_t structure that defines the attributes to use when creating new threads. For more information, see pthread_attr_init().
lazystack
One of:
  • PTHREAD_STACK_LAZY — allocate physical memory for the thread stack on demand (the default).
  • PTHREAD_STACK_NOTLAZY — allocate physical memory for the whole stack up front. Use this value to ensure that your server processes don't die later on because they're unable to allocate stack memory. We recommend that you set the stack size as well, because the default stack size is probably much larger than you really need.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_attr_setstacklazy() function sets the thread stack attribute in the attribute object attr to lazystack.

Note: The procnto -n option causes all stack allocation to be nonlazy. If you use this option, this function has no effect. If you want a thread to have a lazy stack, use mmap() with MAP_LAZY to allocate an area for the stack, and then call pthread_attr_setstack().

Returns:

EOK
Success.
EINVAL
The value of lazystack is invalid.

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes