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;
Note:
Having several threads call this function with the same thread pool handle isn't recommended.
Returns:
-1 if an error occurs (
errno
is set).
Classification:
QNX Neutrino
| Safety: |
|
| Cancellation point |
Yes |
| Interrupt handler |
No |
| Signal handler |
No |
| Thread |
Yes |