Oh, I wasn't sugesting that it was your fault :(. But this
situation with the runtime interfering with the FFI(and the other problems
that GTK2HS with relatively undefined interactions between FFI C threading and
the --threaded runtime) really seems to me that it points to a need to
rethink how the FFI is designed. I really feel that this is a set of
dirty hacks that do not belong in production code. I'm not saying that
it's your fault.
However... Perhaps in the future it would actually be
better to use shared memory as an IPC mechanism to communcate with C and
forgoe the broken haskell FFI entirely.