• programmin Haskell а есть ли какой-нить простой менеджер time-based менеджео выплолнения, чтобы не городить forkIO $ forever $ do { smth ;threadDelay } ; а можно было добавить необходимые функции указав нужные timeout и всё бы выполнялось в 1 легком потоке. или же в этом нет смысла и решение с forkIO лучше?

Replies (8)

  • @qnikst, дак тебе шедулер заданий нужен или таки менеджер процессов? с forkIO ни на то ни на другое до конца не похоже :)
  • @qrilka, обновлять конфиги и т.п.; т.е. мне нужно раз в минуту сделать обновление я могу или сделать magicFunction 60 updateConfig или forkIO $ forever $ do { updateConfig ; threadDelay 60...} . По большому счёту большего функционала пока не нужно. Но в случае если эти интервалы нужно будет убирать или менять 2ое решение придётся сильно усложнять
  • @qnikst, forkIO потому, что ещё действия нужны, поидее для последнего из повторяющихся действий forkIO можно и не делать
  • @qnikst, чтот вообще на hackage смотрю и ничего близкого по смыслу не вижу, похоже все руками форки делают (ну или имеют велосипеды в загашнике), вспоминается снова вопрос Erlang vs Haskell
  • @qrilka, а в Erlang бы как было?
  • @qnikst, дак тупо по таймеру яб вызов сделал
  • @qrilka, если, конечно, у тебя интервалы больше чем выполнение кода
  • @qnikst, нет, не имеет. forkIO это и так лёгкие потоки. если очень хочеться без forkIO — A Poor Man's Concurrency Monad, но это просто кооперативный мультитаскинг