[Haskell-cafe] killThread and FFI calls

Simon Marlow simonmar at microsoft.com
Wed Dec 14 11:36:28 EST 2005


On 14 December 2005 15:35, Joel Reymont wrote:

> On Dec 14, 2005, at 3:22 PM, Simon Marlow wrote:
> 
>> On 14 December 2005 14:26, Joel Reymont wrote:
>> 
>>> How does killThread work with FFI calls? What happens at the low
>>> level when a thread is blocked on an FFI call and received a
>>> KillThread exception? Does it exit immediately via some GHC magic or
>>> is the exception caught when the FFI call returns?
>> 
>> The latter.
> 
> Does this change if I kill a thread that's blocked on I/O in a
> threaded runtime?
> 
> Does it get cleaned up immediately?

A thread blocked on ordinary Handle-based I/O can be killed, because
blocked Handle I/O is implemented using communication with the I/O
manager thread, so it isn't an FFI call under the hood.

Cheers,
	Simon


More information about the Haskell-Cafe mailing list