OK, it actually DOES appear related to the -threaded flag. I was sure I had removed that and still seen the problem but now it seems that taking that out is indeed the fix. Using the -O2 flag is OK. I guess it's some syncronization problem when using the threaded RTS. Which is a shame because it does seem faster that way on my dual core machine. I guess I need to learn about how threading works in ghc. Duncan Coutts <duncan.coutts@worc.ox.ac.uk> wrote: On Tue, 2007-11-20 at 15:18 -0800, Gregory Propf wrote:
I'm using the Gtk.timeoutAddFull function to do the animation.
Are you using the threaded rts? Are you linking the program with -threaded? Are you doing the drawing directly in the timeout function or just invalidating the window/widget and letting it get redrawn? See for example the cairo clock demo which animates the hands of the clock every second: timeoutAdd (widgetQueueDraw window >> return True) 1000 In general it is much better to only ever draw to a window or widget during that widget's expose event. Duncan --------------------------------- Get easy, one-click access to your favorites. Make Yahoo! your homepage.