Control.Concurrent.Chan
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Устойчивость | экспериментальная |
| Переносимость | непереносимая (конкурентность) |
| Безопасный Haskell | Надежный |
| Язык | Haskell2010 |
Содержание
Описание
Неограниченные каналы.
Тип Chan
Chan — это абстрактный тип, представляющий неограниченный канал FIFO.
Операции
newChan :: IO (Chan a) Источник
Создает и возвращает новый экземпляр Chan.
writeChan :: Chan a -> a -> IO () Источник
Запись значения в Chan.
readChan :: Chan a -> IO a Источник
Чтение следующего значения из Chan.
dupChan :: Chan a -> IO (Chan a) Источник
Дублирование Chan: дублированный канал начинает работу пустым, но данные, записанные в любой из каналов, будут доступны из обоих. Таким образом, это создает своего рода канал широковещательной передачи, где данные, записанные кем-либо, видны всем остальным.
(Обратите внимание, что дублированный канал не равен исходному. Поэтому: fmap (c /=) $ dupChan c возвращает True для всех c.)
unGetChan :: Chan a -> a -> IO () Источник
Устаревшее: если вам нужна эта операция, используйте Control.Concurrent.STM.TChan вместо этого. Подробности см. на http://ghc.haskell.org/trac/ghc/ticket/4154
Возврат данных обратно в канал, где они будут следующим элементом для чтения.
isEmptyChan :: Chan a -> IO Bool Источник
Устаревшее: если вам нужна эта операция, используйте Control.Concurrent.STM.TChan вместо этого. Подробности см. на http://ghc.haskell.org/trac/ghc/ticket/4154 для деталей
Возвращает True, если предоставленный Chan пустой.
Интерфейс потока
getChanContents :: Chan a -> IO [a] Источник
Возвращает ленивый список, представляющий содержимое предоставленного Chan, аналогично hGetContents.
writeList2Chan :: Chan a -> [a] -> IO () Источник
Запись всего списка элементов в Chan.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Control-Concurrent-Chan.html