Реализация очереди блокировки в Haskell

В java есть хороший пакет java.util.concurrent, который содержит реализацию для интерфейса BlockingQueue.

Мне нужно что-то подобное в Haskell, чтобы он мог

  • поддерживать фиксированный размер очереди в памяти
  • операции чтения блоков, когда очередь пуста (get)
  • предоставляет блоки с временными рамками, которые будут return Ничего, если очередь пуста и превышен тайм-аут
  • аналогично операциям put - блокировать до тех пор, пока очередь не заполнится версией с ограниченным временем

, вероятно, это можно было бы реализовать с помощью STM или блокирующих транзакций - но я не смог найти что-то вроде что на взломе.

5
задан jdevelop 12 February 2012 в 11:38
поделиться