OK, it actually DOES appear related to the -threaded flag.&nbsp; I was sure I had removed that and still seen the problem but now it seems that taking that out is indeed the fix.&nbsp; Using the -O2 flag is OK.&nbsp; I guess it's some syncronization problem when using the threaded RTS.&nbsp; Which is a shame because it does seem faster that way on my dual core machine.&nbsp; I guess I need to learn about how threading works in ghc.<br><br><b><i>Duncan Coutts &lt;duncan.coutts@worc.ox.ac.uk&gt;</i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> On Tue, 2007-11-20 at 15:18 -0800, Gregory Propf wrote:<br>&gt; I'm using the Gtk.timeoutAddFull function to do the animation.<br><br>Are you using the threaded rts? Are you linking the program with<br>-threaded?<br><br>Are you doing the drawing directly in the timeout function or just<br>invalidating the window/widget and letting it get redrawn?<br><br>See
 for example the cairo clock demo which animates the hands of the<br>clock every second:<br><br>timeoutAdd (widgetQueueDraw window &gt;&gt; return True) 1000<br><br>In general it is much better to only ever draw to a window or widget<br>during that widget's expose event.<br><br>Duncan<br></blockquote><br><p>&#32;
      <hr size=1>Get easy, one-click access to your favorites. 
<a href="http://us.rd.yahoo.com/evt=51443/*http://www.yahoo.com/r/hs"> Make Yahoo! your homepage.</a>