
Daan Leijen
I therefore propose another rule:
2d) All haskell code is run in a single OS thread (the "GUI thread"). Calls to the CGA can be made at any time from any Haskell thread (within the GUI thread).
I don't think the GUI design needs to talk about this because which OS thread is executing Haskell code is not observable*. The only way that a particular OS thread is observable is which OS thread executes foreign code. This issue is being addressed by the FFI group and I think we're converging on a solution. -- Alastair Reid alastair@reid-consulting-uk.ltd.uk Reid Consulting (UK) Limited http://www.reid-consulting-uk.ltd.uk/alastair/ * This is a slight overstatement. It is possible to observe which OS thread is doing what using things akin to 'system "/bin/ps aux"' but such "observations" don't seem to be relevant here.