thread_pool_limits()

QNX SDP8.0C Library ReferenceAPIDeveloper

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:

  • lower = (lowater != -1) : lowater ? 0;
  • upper = (maximum != -1) : maximum ? USHRT_MAX;

Returns:

EOK
Success.
-1
An error occurred (errno is set).

Errors:

This function can set any of the same errors as thread_pool_control().

Classification:

QNX OS

Safety:
Cancellation pointYes
Signal handlerNo
ThreadYes
Page updated: