我一直在玩修复和加速 - 他们都很有趣,但是当我使用一个而另一个时,我无法解决问题.他们在一起成长,竞争对手,还是仅仅针对不同的问题?
我正在寻找一个功能
foo :: Handle -> ByteString
Run Code Online (Sandbox Code Playgroud)
这将给我缓冲区中的所有内容,如果它是空的则阻止,如果它关闭则返回"".
我有一个应用程序,我正在打电话
Data.ByteString.Char8.hGet handle 1
Run Code Online (Sandbox Code Playgroud)
并且一切都运作良好,但是多次呼叫系统调用有点浪费.不幸的是,如果我将它增加到2,我的应用程序会间歇性挂起,这告诉我hGet等待缓冲区已满(或者至少大于1).
我错过了什么?