X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FConc%2FSync.lhs;h=9b7415da2c85fc8b6935351f01ccada8291b084a;hb=4cd3a6475de0ef9a9d1bd0b6e8cf3fb336b80a43;hp=24178a0541c5b6bb07b0a72ffb395834bc3aa83a;hpb=9520c5735e69668a33013c36f85152a1ef656b8d;p=ghc-base.git diff --git a/GHC/Conc/Sync.lhs b/GHC/Conc/Sync.lhs index 24178a0..9b7415d 100644 --- a/GHC/Conc/Sync.lhs +++ b/GHC/Conc/Sync.lhs @@ -75,7 +75,7 @@ module GHC.Conc.Sync , sharedCAF ) where -import Foreign +import Foreign hiding (unsafePerformIO) import Foreign.C #ifdef mingw32_HOST_OS @@ -274,7 +274,10 @@ another thread. If the target thread is currently making a foreign call, then the exception will not be raised (and hence 'throwTo' will not return) until the call has completed. This is the case regardless of whether -the call is inside a 'mask' or not. +the call is inside a 'mask' or not. However, in GHC a foreign call +can be annotated as @interruptible@, in which case a 'throwTo' will +cause the RTS to attempt to cause the call to return; see the GHC +documentation for more details. Important note: the behaviour of 'throwTo' differs from that described in the paper \"Asynchronous exceptions in Haskell\"