You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
And Control.Exception.bracket uses interruptible masking for it’s cleanup handler. So if you need to perform some kind of blocking action in your cleanup, and you want to make sure that you don’t get interrupted by an async exception, you have to remember to use uninterruptibleMask yourself. Otherwise, your cleanup action may not complete, which is Bad News Bears.
The persistence code uses bracket to ensure SQLite3 connections get closed. Only if it gets interrupted by an async exception, then maybe the connection won't be closed after all. This might lead to deadlocks or file descriptor leaks.
The text was updated successfully, but these errors were encountered:
From https://www.snoyman.com/blog/2020/10/haskell-bad-parts-1:
The persistence code uses bracket to ensure SQLite3 connections get closed. Only if it gets interrupted by an async exception, then maybe the connection won't be closed after all. This might lead to deadlocks or file descriptor leaks.
The text was updated successfully, but these errors were encountered: