Я пишу многопоточную программу, которая использует mvars;в этом случае у меня есть поток, который периодически меняет список внутри mvar.К сожалению, есть утечка памяти.Кажется, есть проблема, что функция «id карты» (в реальной программе я использую что-то еще, кроме id) не работаетЯ просто не могу найти способ избежать этого - я играл с seq безрезультатно.Как правильно исправить утечку?
upgraderThread :: MVar [ChannelInfo] -> IO ()
upgraderThread chanMVar = forever job
where
job = do
threadDelay 1000
vlist <- takeMVar chanMVar
let reslist = map id vlist
putMVar chanMVar reslist