As I understand it, `interruptible` foreign calls aren't affected by the masking state at all. It seems to me that they really should respect `uninterruptibleMask`. In particular, within the scope of `uninterruptibleMask`, if an exception arrives and successfully interrupts the foreign call, then the `allowInterrupt` call will not actually deliver the exception, and the failure/EINTR loop (e.g., throwIfMinus1Retry) will just perform the interrupted call again. How I think it should work is that an `interruptible` foreign call should act exactly like a `safe` foreign call in the scope of `uninterruptibleMask`. Does this make sense? If so, does it need a GHC proposal? _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs