[Haskell] How to use STM in GUI applications?
thorsten.seitz at web.de
Mon Dec 4 17:03:56 EST 2006
I'm very intrigued by the concepts of STM but I'm having difficulties to see
how a TVar based model can be used by a GUI application (e.g. Gtk2hs):
For example, I'd like to update the GUI (e.g. changing widget sensitivity)
upon changes in the model.
But changing the sensitivity of a widget is an IO operation which cannot be
initiated atomically by a model change which is an STM operation. Therefore
the GUI change cannot be executed atomically together with the model change.
This means for example that I can still press a button although the model has
changed such that the button action is not allowed anymore. All I can do is
check the condition of the model when the button is pressed and then ignore
the button press which is not very satisfying for the user.
Is it simply not appropriate to use TVar based models in a GUI application?
Maybe STM should be more used like a service for MVar based GUI models?
Thanks for any help!
More information about the Haskell