http://qs321.pair.com?node_id=124953


in reply to Re: Re: Re: Re: Re:(wog) Win32::Gui + Threading?
in thread Win32::Gui + Threading?

Your problem is probably derived from trying to use the GUI from two threads. Don't do that. In your case what is probably happening is that when the forked process trys to pop-up its message box, the Win32::GUI event loop isn't running (since it just exited) so nothing happens.

I advise against using Win32::GUI from multiple threads because Win32::GUI stores it's data in shared (not-thread-specific) variables (at the C level), so race conditions could easily cause crashes if you do not restrain from using it in only one thread.

update: I have neglected to give an explanation as to why perl sticks around. I cannot think of a reason for it to not terminate after 20 seconds, unless Win32::GUI::MessageBox blocks, which would explain it.