thread_pool_limits()

Updated: April 19, 2023

Convenience wrapper function for thread_pool_control()

Synopsis:

#include <sys/iofunc.h>
#include <sys/dispatch.h>

int thread_pool_limits( thread_pool_t * pool, 
                        int lowater,
                        int hiwater,
                        int maximum,
                        int increment,
                        unsigned flags );

Arguments:

pool
A thread pool handle that was returned by thread_pool_create().
lowater
The minimum number of threads that the pool should keep in the blocked state (i.e., threads that are ready to do work), or a negative number if you don't want to change the current value.
hiwater
The maximum number of threads that the pool should keep in the blocked state, or a negative number if you don't want to change the current value.
maximum
The maximum number of threads that the pool can create, or a negative number if you don't want to change the current value.
increment
The number of new threads created at one time, or a negative number if you don't want to change the current value.
flags
The only flag that's accepted is THREAD_POOL_CONTROL_NONBLOCK. For more information, see the documentation for thread_pool_control().

Library:

libc

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

Description:

The thread_pool_limits() function is a wrapper function for thread_pool_control(). If the value of lowater, hiwater, maximum or increment is 0 then that value is adjusted in the thread pool according to the handle pool.

If you don't set THREAD_POOL_CONTROL_NONBLOCK, the upper and lower bounds for waiting are:

Returns:

-1 if an error occurs (errno is set).

Classification:

QNX Neutrino

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