Моя программа читает строку из сетевого сокета и записывает ее на диск. Поскольку строки могут быть очень длинными и строки имеют ужасную производительность, я начал использовать ленивые байтовые строки. Теперь кажется, что Haskell будет проходить мимо hClose
на дескрипторе файла диска, фактически не сбрасывая всю байтовую строку на диск, делая так:
- открыть файл для записи
- записать байтовую строку в файл с
hPut
- закрыть файл
- открыть файл для чтения
обычно приводит к openFile: resource busy (file is locked)
.
Можно ли принудительно выполнить оценку и дождаться записи всей байтовой строки перед закрытием файла, поэтому я могу быть уверен, что файл действительно закрыт после этой операции?