Если канал закрыт, возвращается закрытое. В противном случае задает значение в канале, разбудит волокно, заблокированное на это->поп(), это->значение_поп(), это->>>>.
Throws:
Исключения, выброшенные распределением памяти и копированием или перемещением va.
Задает значение от канала. Если канал пуст, волокно приостанавливается до тех пор, пока, по крайней мере, один новый пункт не будет push()ed (возвратное значение success и va содержит вывешенное значение) или канал получает Close()d (возвратное значение ).
Задает значение от канала. Если канал пуст, волокно приостанавливается до тех пор, пока по крайней мере один новый пункт не будет push()ed или канал не получит Close()d (который бросает исключение).
Если канал пуст, возвращается пустая. Если канал закрыт, возвращается закрытое. В противном случае он возвращает success и va содержит заданные значения.
Принимает std::chrono::duration и внутренне вычисляет время ожидания как (системное время + timeout_duration). Если канал не пуст, сразу выдает значение из канала. В противном случае клетчатка приостанавливается до тех пор, пока по крайней мере один новый пункт не будет push()ed (возвратное значение success и va содержит вывешенное значение), или канал получает закрытие()d (закрытый значение ) или системное время достигает расчетного времени ожидания (возвратное значение >>.
Принимает std::chrono::time_point<Clock,Duration>. Если канал не пуст, сразу выдает значение из канала. В противном случае клетчатка приостанавливается до тех пор, пока, по крайней мере, один новый пункт не будет push()success и va содержит вывешенное значение), или канал получает Close()d (исключенное значение ), или системное время достигает пройденного _timeout<221>.
Конструирует объект класса bounded_channel. Конструктор с двумя аргументами строит объект класса bounded_channel с высоким водяным знаком hwm и низководный знак lwm. Конструктор с одним std::size_t аргумент фактически такой же, как bounded_channel(wm,(wm-1),alloc). Внутренние узлы выделяются с помощью alloc - C++11-алокаторы поддерживаются.
Throws:
fiber_error
Error Conditions:
invalid_argument: если lwm>=hwm.
Notes:
Как только количество значений в канале достигает hwm, любой вызов push(), push_wait_ для() или push_wait_until() будет блокироваться до тех пор, пока количество значений в канале не будет по максимуму lwm. То есть, если lwm<(hwm-1), канал может быть в состоянии, в котором push(), push_wait_for() или push_wait_untnel_until>>.
Если канал закрыт, возвращается закрытое. Если канал не полный, задает значение в канале, пробуждает волокно, заблокированное на этом->поп(), этом->значение_поп(), это->поп_ваит_ для() В противном случае клетчатое волокно приостанавливается до тех пор, пока число значений в канале не упадет до lwm (возвратное значение success) или канал close()d (возвратное значение закрытое).
Throws:
исключения, выброшенные путем распределения памяти и копирования или перемещения va.
Принимает std::chrono::duration и внутренне вычисляет тайм-точку как (система времени + timeout_duration). Если канал закрыт, возвращается закрытое. Если канал не заполнен, задает значение в канале, пробуждает волокно, заблокированное на это->поп(), эт ->поп(), >>>>>>>>>>>>>> В противном случае клетчатое волокно приостанавливается до тех пор, пока число значений в канале не упадет до lwm (вновь значение success), канал close()d (вновь значение закрытое), или системное время достигает расчетной точки времени_положений (время возврата время ).
Throws:
исключения, выброшенные путем распределения памяти и копирования или перемещения va или исключений, связанных с тайм-аутом.
Принимает абсолютную timeout_time в любом поддерживаемом типе Time_point. Если канал закрыт, возвращается закрытое. Если канал не заполнен, задает значение в канале, пробуждает волокно, заблокированное на это->поппоп(), это->поп>>>>>>>>>>>>>>>>>>>>>1>поп поп >>>>>>> В противном случае клетчатое волокно приостанавливается до тех пор, пока число значений в канале не упадет до lwm (возвратное значение success), канал Close()d (возвратное значение закрытое), или системное время достигает пройденной точки времени (возвратное значение Timeout).
Throws:
исключения, выброшенные путем распределения памяти и копирования или перемещения va или исключений, связанных с тайм-аутом.
Если канал заполнен, возвращается full. Если канал закрыт, возвращается закрытое. В противном случае задает значение в канале, разбудит волокно, заблокированное на это->поп(), это->=2> или поп>>>>>>>>>>.
Throws:
Исключения, выброшенные распределением памяти и копированием или перемещением va.
Задает значение от канала. Если канал пуст, волокно приостанавливается до тех пор, пока, по крайней мере, один новый пункт не будет push()ed (возвратное значение success и va содержит вывешенное значение) или канал получает Close()d (возвратное значение ). Как только количество предметов, оставшихся в канале, упадет до lwm, любые волокна заблокированы на push(), push_wait_ для() или push_wait_until() могут возобновиться.
Задает значение от канала. Если канал пуст, то волокно приостанавливается до тех пор, пока по крайней мере один новый пункт не будет push() или канал не получит Close()d (который бросает исключение). Как только количество предметов, оставшихся в канале, упадет до lwm, любые волокна заблокированы на push(), push_wait_ для() или push_wait_until() могут возобновиться.
Если канал пуст, возвращается пустая. Если канал закрыт, возвращается закрытое. В противном случае он возвращает success и va содержит заданные значения. Как только количество предметов, оставшихся в канале, упадет до lwm, любые волокна заблокированы на push(), push_wait_ для() или push_wait_until() могут возобновиться.
Принимает std::chrono::duration и внутренне вычисляет время ожидания как (системное время + timeout_duration). Если канал не пуст, сразу выдает значение из канала. В противном случае клетчатка приостанавливается до тех пор, пока по крайней мере один новый пункт не будет push()ed (возвратное значение success и va содержит вывешенное значение), или канал получает закрытие()d (закрытый значение ) или системное время достигает расчетного времени ожидания (возвратное значение >>. Как только количество предметов, оставшихся в канале, упадет до lwm, любые волокна заблокированы на push(), push_wait_ для() или push_wait_until() могут возобновиться.
Принимает std::chrono::time_point<Clock,Duration>. Если канал не пуст, сразу выдает значение из канала. В противном случае клетчатка приостанавливается до тех пор, пока, по крайней мере, один новый пункт не будет push()success и va содержит вывешенное значение), или канал получает Close()d (исключенное значение ), или системное время достигает пройденного _timeout<221> Как только количество предметов, оставшихся в канале, упадет до lwm, любые волокна заблокированы на push(), push_wait_ для() или push_wait_until() могут возобновиться.
Throws:
исключения, связанные с таймаутом.
Статья Channels раздела Chapter 1. Fiber Synchronization может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.