Я пытаюсь использовать network-conduit в качестве backend для (исправленного) HaskellNet's IMAP. Как я могу заставить трубопровод смывать поток? Это required operation, но, похоже, в сетевом кабеле нет такой вещи.Как очистить сетевой поток при использовании сетевого кабеля?
2
A
ответ
2
сетевой трубопровод должен промывать потока каждый раз, когда вы посылаете его ByteString
, буферизация специально не включены, как будут обрабатываться что-то вроде blaze-builder-conduit
ортогонально. Вы видите поведение, которое противоречит этому?
Спасибо, нет, он работает, как вы описываете. Я просто хотел быть уверенным, что это гарантированное поведение, а не просто совпадение. –
Чтобы быть уверенным, отправляет ли 'ByteString' триггер, вызывающий« флеш »на уровне ОС? Так что он не получает буферизацию на уровне ОС? (Стоит документировать поведение покраски в документах пакета.) –
На уровне os нет буферизации. Сетевой канал просто использует sendAll под поверхностью: http://hackage.haskell.org/packages/archive/network/2.4.1.2/doc/html/Network-Socket-ByteString.html#v:sendAll –