thread_pool_limits()

Функция-оболочка для thread_pool_control()

Прототип:

#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 );

Аргументы:

pool
Дескриптор пула потоков, возвращаемый thread_pool_create().
lowater
Минимальное количество потоков, которое пул должен держать в заблокированном состоянии (т.е. потоки, готовые выполнять работу), или отрицательное число, если не нужно изменять текущее значение.
hiwater
Максимальное количество потоков, которое пул должен держать в заблокированном состоянии, или отрицательное число, если не нужно изменять текущее значение.
maximum
Наибольшее количество потоков, которое может создать пул, или отрицательное число, если не нужно изменять текущее значение.
increment
Количество потоков, создаваемых за один раз, или отрицательное число, если не нужно изменять текущее значение.
flags
Единственный допустимый флаг - THREAD_POOL_CONTROL_NONBLOCK. Подробнее - в thread_pool_control().

Библиотека:

libc

Описание:

Функция thread_pool_limits() - это обёртка над thread_pool_control(). Если значение lowater, hiwater, maximum или increment ≥0, то это значение настраивает параметры пула потоков, определяемого по pool.

Если флаг THREAD_POOL_CONTROL_NONBLOCK не установлен, то верхнее и нижнее ограничения на значения следующие:


Note: Не рекомендуется вызывать эту функцию для одного и того же дескриптора из нескольких потоков.

Возвращаемое значение:

-1
Возникла ошибка. Код ошибки записан в errno.

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

thread_pool_control(), thread_pool_create(), thread_pool_destroy(), thread_pool_start()




Предыдущий раздел: Описание API системной библиотеки