throwTo semantics

Roman Cheplyaka roma at ro-che.info
Sun Jul 28 15:36:31 CEST 2013


The documentation for throwTo says:

  throwTo does not return until the exception has been raised in the
  target thread. The calling thread can thus be certain that the target
  thread has received the exception. This is a useful property to know
  when dealing with race conditions: eg. if there are two threads that
  can kill each other, it is guaranteed that only one of the threads
  will get to kill the other. 

I don't see how the last sentense follows. I understood it so that the
implication

  throwTo has returned => exception has been delivered

is true, but not the reverse. If my understanding is correct, then both
exceptions could be delivered without any of throwTos returning.

Or is it true that

  throwTo has returned <=> exception has been delivered

?

Roman




More information about the Glasgow-haskell-users mailing list