Контролировать поведение пула потоков
#include <sys/iofunc.h>
#include <sys/dispatch.h>
int 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:](./../../../../gendoc_inserted_style/images/note.png) | Не рекомендуется вызывать эту функцию несколько раз для одного и того же пула потоков. |
- -1
- Возникла ошибка. Код ошибки записан в errno.
ЗОСРВ «Нейтрино»
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
thread_pool_attr_t, thread_pool_destroy(), thread_pool_create(), thread_pool_limits(), thread_pool_start()
Предыдущий раздел: Описание API системной библиотеки