Я написал простой прокси-сервер Wai-to-uwsgi, но при этом мне пришлось использовать unwrapResumable
. Это дает развернутый Pipe
и функцию «освобождения», которую в конечном итоге необходимо вызвать. Тип функции выпуска — ResourceT IO ()
, и я думаю, что хочу зарегистрировать ее с моим текущим ресурсом, но для этого мне нужно, чтобы выпуск был просто IO ()
. Что мне делать с функцией выпуска?
Что делать с освобождением от unwrapResumable?
Ответы (1)
Действие освобождения уже должно быть зарегистрировано в вашем ResourceT
. В правильном conduit
коде есть два разных способа позаботиться об очистке ресурсов:
- Внутри самого
Pipe
. Эта очистка будет вызвана как можно раньше, но не является безопасной для исключений. - От
ResourceT
. Это безопасно для исключений, но может быть отложено.
Действие очистки, предоставляемое unwrapResumable
, позволяет вам восстановить аспект «как можно раньше». Но если вы просто вызываете очистку за пределами блока ResourceT
, в любом случае об этом не нужно беспокоиться.
person
Michael Snoyman
schedule
04.10.2012