Haskell HDBC内存泄漏

时间:2012-04-25 23:40:03

标签: haskell memory-leaks hdbc

我前几天尝试将资源池和HDBC放在一起,但注意到每个查询的内存不断增加。然后,我使用尽可能少的函数组合一个简单的测试代码,并得到了这个:

data SQL = SQL (Pool Connection)
check :: SQL -> IO ()
check (SQL pool) = do res <- query' pool "show status like 'Threads_conn%'" []
                      threadDelay 100000
                      check (SQL pool)

整码: http://upaste.me/40f2229cef7157f

对于check函数的每次递归,程序使用越来越多的内存。结果是不应该在新的递归调用中收集垃圾,还是会在程序退出该函数之前保留在内存中以防“我们需要它”?

1 个答案:

答案 0 :(得分:1)

后续跟进,但根据您使用的池版本,它可能是池实现本身的错误:https://github.com/bos/pool/pull/4