Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/p/pthread_attr_setguardsize.html on line 1

Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/p/pthread_attr_setguardsize.html on line 1

Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/p/pthread_attr_setguardsize.html on line 8

Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/p/pthread_attr_setguardsize.html on line 8

pthread_attr_setguardsize()

Set the size of the thread's guard area

Synopsis:

#include <pthread.h>

int pthread_attr_setguardsize( 
             pthread_attr_t* attr,
             size_t guardsize );

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().
guardsize
The new value for the size of the thread's guard area.

Library:

libc

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

Description:

The pthread_attr_setguardsize() function sets the size of the thread's guard area in the attribute structure attr to guardsize.

If guardsize is 0, threads created with attr have no guard area; otherwise, a guard area of at least guardsize bytes is provided. You can get the default guardsize value by specifying _SC_PAGESIZE in a call to sysconf().

The guardsize attribute controls the size of the guard area for the thread's stack. This guard area helps protect against stack overflows; guardsize bytes of extra memory is allocated at the overflow end of the stack. If a thread overflows into this buffer, it receives a SIGSEGV signal.

The guardsize attribute is provided because:

Returns:

EOK
Success.
EINVAL
Invalid pointer, attr, to a pthread_attr_t structure, or guardsize is invalid.

Classification:

POSIX 1003.1 XSI

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

Caveats:

If you provide a stack (using attr's stackaddr attribute; see pthread_attr_setstackaddr()), the guardsize is ignored, and there's no stack overflow protection for that thread.

The guardsize argument is completely ignored when using a physical mode memory manager.

See also:

pthread_attr_getguardsize(), pthread_attr_init(), pthread_attr_setstackaddr(). sysconf()

Processes and Threads chapter of Getting Started with QNX Neutrino


Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/p/pthread_attr_setguardsize.html on line 181

Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/p/pthread_attr_setguardsize.html on line 181