Control.Concurrent, которые бы в совркупности покрывали большую часть задач нет?
Давай на конкретном примере разбираться
Есть Chan
STM стандартный, он идёт в поставке с компилятором
Ну, допустим Делаю кокурентный сервер, в котором каждая сессия пользователя обрабатывается в отдельном потоке, и есть некий главный поток, который принимает сообщения в необработанном виде и раскидывает их по потокам Если делать через канал, то если поток упадёт/зависнет, а главный засунет в канал поток с его id, то вся программа зависнет, ведь никто не может этот запрос взять
можно сделать еще тред-вачдог
Сделай TQueue и воркеров которые разбирают из него задачи, у меня был шоукейс в телеграм боте
Вариантов исполнения много. Архитектура многопоточной обработки это сложно безотносительно хаскеля. Бери STM, там есть не блокирующие вызовы и registerDelay для таймаутов.
STM и есть стандартный
Обсуждают сегодня