Что делать с освобождением от unwrapResumable?

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


person tsuraan    schedule 04.10.2012    source источник


Ответы (1)


Действие освобождения уже должно быть зарегистрировано в вашем ResourceT. В правильном conduit коде есть два разных способа позаботиться об очистке ресурсов:

  • Внутри самого Pipe. Эта очистка будет вызвана как можно раньше, но не является безопасной для исключений.
  • От ResourceT. Это безопасно для исключений, но может быть отложено.

Действие очистки, предоставляемое unwrapResumable, позволяет вам восстановить аспект «как можно раньше». Но если вы просто вызываете очистку за пределами блока ResourceT, в любом случае об этом не нужно беспокоиться.

person Michael Snoyman    schedule 04.10.2012