Re: Re[2]: bug: unstable myThreadId in GHC 6.6.1
On Sat, 2009-04-11 at 21:07 +0400, Bulat Ziganshin wrote: > Hello Bertram, > > Saturday, April 11, 2009, 8:09:46 PM, you wrote: > > > What does "same thread" mean? I'll risk a guess. > > well, that's possible - i'll ask on gtk2hs list too > > currently, i believe that mainGUI just runs endless loop processing > queue of GUI events You are both right. mainGUI does just run an endless event processing loop but callbacks for events (like button clicks) are indeed ffi "wrapper" callbacks and so do get run in a fresh thread. Your 'guiThread' is blocked in the mainGUI call, so nothing ever happens in that Haskell thread until the even loop terminates. Duncan ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re[2]: bug: unstable myThreadId in GHC 6.6.1
Hello Bertram, Saturday, April 11, 2009, 8:09:46 PM, you wrote: > What does "same thread" mean? I'll risk a guess. well, that's possible - i'll ask on gtk2hs list too currently, i believe that mainGUI just runs endless loop processing queue of GUI events -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re[2]: bug: unstable myThreadId in GHC 6.6.1
Hello Don, Friday, April 10, 2009, 8:36:32 PM, you wrote: unfortunately, full example is my whole program. i will try to make short example if someone will say that it looks like a bug and it was not fixed in intermediate versions. basically, scenario is simple - myThreadId changed due the life of (bound) thread > Could you send a full example we can compile and test? > This is only a fragment. > bulat.ziganshin: >> Hello glasgow-haskell-users, >> >> i've looked for this bug in Trac but don't found anything. so: >> >> startGUI action = runInBoundThread $ do >> unsafeInitGUIForThreadedRTS >> myThreadId >>= writeIORef guiThread >> action >>= widgetShowAll >> mainGUI >> >> guiThread = unsafePerformIO$ newIORef$ error "undefined GUI::guiThread" >> >> >> Later in the same thread i ask for myThreadId and get different value. >> interesting that value returned in startGUI is 23 while later values >> are about 7000. probably this reflects total amount of threads created >> so far >> >> so that's the problem. Win API call returns constant thread number >> (that looks natural since the thread is bound). so either: >> >> 1) it's feature - please mention this in docs >> 2) it was fixed since 6.6.1 >> 3) we need full-scale bugreport using 6.10.2 >> >> >> -- >> Best regards, >> Bulat mailto:bulat.zigans...@gmail.com >> >> ___ >> Glasgow-haskell-users mailing list >> Glasgow-haskell-users@haskell.org >> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users