[Haskell-cafe] what GUI library should i select?

Simon Peyton-Jones simonpj at microsoft.com
Tue Nov 14 05:40:40 EST 2006


I wonder whether it'd be possible to make the gtk2hs stuff emit warnings if you make calls from two different threads?  Then an application would complain constructively rather than "becoming unstable".

Simon

| -----Original Message-----
| From: haskell-cafe-bounces at haskell.org [mailto:haskell-cafe-bounces at haskell.org] On Behalf Of
| Dmitry V'yal
| Sent: 14 November 2006 10:27
| To: haskell-cafe at haskell.org
| Subject: Re: [Haskell-cafe] what GUI library should i select?
|
| Bulat Ziganshin wrote:
|
| > it is what i say about. threaded RTS + multipls threads that does
| > computations + one thread that interfaces with Gtk2Hs. afaiu, the only
| > problem is that i need to manage both Gtk events and periodically
| > check queue of commands from other threads, but using timer + Chan
| > should allow to implement this
| >
| I wrote multi threaded gui application in Haskell last spring as a educational
| project. That was a tool for analyzing and extracting contents of FAT volumes.
|         Then i started my project, i was completely unaware of these threading issues
| and freely called gtk2hs routines from several threads. All worked fine at
| first, but when i added some disk I/O to my threads, my program became unstable.
| While on linux it just crashed from time to time, on windows i saw more curious
| behavior. At random spots threads lost ability to call WinAPI functions.
| Basically they got an error code meaning something weird like "insufficient
| memory to complete call" in return. That was not easily reproducible and
| depended on exact version of Windows. At some point my app was fully functional
| on WinXP and didn't even start on Win2000.
|         I spent a lot of time trying to debug these issues and finally refactored my
| program to make use of approach you describe.  Worked fine after that. All you
| have to do is to choose appropriate timer interval, otherwise your app becomes
| too jerky or CPU hungry.
| _______________________________________________
| Haskell-Cafe mailing list
| Haskell-Cafe at haskell.org
| http://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list