Tags: purescript-contrib/purescript-aff
Tags
Fix interrupt bugs wrt bracket masking (#171) Currently when we check interrupt status, we are not considering the bracket masking status. When we enter a masked state (`bracketCount > 0`), it should be impossible for an interrupt to terminate evaluation, but without the bracket check in CATCH, RESUME, and RELEASE, this is violated. * In a nested async generalBracket, the wrong handler is enqueued. Since we are in a masked state, it should be impossible for the `killed` branch to be invoked. However, if an interrupt occurs it is currently _always_ invoking `killed` when the branch is actually `completed`. * In a nested bracket, an interrupt will terminate evaluation of the inner bracket even though we are in a masked state. This can also happen with an inner `catch` in a masked state. We need to always consider the masked state (`bracketCount > 0`) when we discriminate the interrupt state. Fixes #170
PreviousNext