Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 3

   preserveObject p
   newForeignPtr p releaseObject

Если между этими строчками прилетит исключение, финализатор никогда не вызовется? С этим можно как-то бороться?
mask_ $ preserveObject x >>= p -> newForeignPtr p releaseObject
для того, чтобы исключение не прилетело между операциями можно использовать маскировку от исключений:

mask_ $ do
   preserveObject p
   newForeignPtr p releaseObject

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации