ghc 6.6 for Windows crashes my program on exit

Brian Hulley brianh at
Sat Oct 14 15:47:05 EDT 2006

Has anyone else come across this crash with ghc 6.6 on Windows?

    The thread 'Win32 Thread' (0x5c8) has exited with code 0 (0x0).
    First-chance exception at 0x7c90eb74 in main.exe: 0xC0000008:
       An invalid HANDLE was specified.
    Unhandled exception at 0x7c90eb74 in main.exe: 0xC0000008:
       An invalid HANDLE was specified.

The program has this form:

    main = do
                    -- window has now been closed
                    putStrLn "Finished\n"

and has been working perfectly with ghc 6.4.2. The only changes I had to 
make to compile it with ghc 6.6 were minor tweaks to deal with the changes 
to the ByteString api. When I run the ghc 6.6 compiled version, the window 
is displayed and works as usual, then when I dismiss the window, "Finished" 
is written to the console. It is only when I press return in the console 
that the program crashes on exit with that error message.

I'm running the program from within MS Visual Studio (the graphics window is 
written as a C DLL that's called from Haskell). If I just run the program 
directly from the desktop the program exits silently . If I run the program 
from a command shell nothing unusual happens either: no error is printed out 
but the crash-on-exit is presumably still happening.

>From just looking at the error message, it looks to me like it might be that 
the rts exit code has somehow held onto the handle of the window's thread 
after this thread no longer exists, but of course this is only a wild guess.

Alternatively, which file(s) in the ghc source distro would be the place to 
start looking to see what happens between the time the thread for the window 
has exited and the thread for main.exe exits?

Thanks, Brian.
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us. 

More information about the Glasgow-haskell-users mailing list