thread_pool_control()

Контролировать поведение пула потоков

Прототип:

#include <sys/iofunc.h>
#include <sys/dispatch.h>
thread_pool_control( thread_pool_t *pool,
thread_pool_attr_t *attr,
uint16_t lower,
uint16_t upper,
unsigned flags );

Аргументы:

pool
Дескриптор пула потоков, возвращаемый thread_pool_create().
attr
Указатель на структуру thread_pool_attr_t, которая определяет атрибуты пула потоков. Подробнее - в Thread-pool attributes, в документации к thread_pool_create().
lower,upper
Эта функция блокирует, пока число созданных потоков находится в диапазоне от lower до upper, если не установлен флаг THREAD_POOL_CONTROL_NONBLOCK в аргументе flags.
flags
Задаёт атрибуты пула потоков; комбинация следующих битов:
THREAD_POOL_CONTROL_HIWATER
подобрать максимальное количество ожидающих потоков в пуле.
THREAD_POOL_CONTROL_INCREMENT
подобрать значение инкремента количества потоков.
THREAD_POOL_CONTROL_LOWATER
подобрать минимальное количество ожидающих потоков в пуле.
THREAD_POOL_CONTROL_MAXIMUM
подобрать максимальное количество потоков в пуле.
THREAD_POOL_CONTROL_NONBLOCK
не блокировать, пока создаются потоки.

Библиотека:

libc

Описание:

Используйте thread_pool_control(), чтобы определить поведение пула потоков и настроить его атрибуты.


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

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

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

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

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

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

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

thread_pool_attr_t, thread_pool_destroy(), thread_pool_create(), thread_pool_limits(), thread_pool_start()




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