Dr. Mu has asked for the wisdom of the Perl Monks concerning the following question:

I'm using threads and threads::shared in a small Perl HTTP server (ActivePerl 5.8.4/Windows XP). Each new connection will spawn a thread to handle requests until the connection is closed. The server will ultimately be compiled with perl2exe to run without a console. Rather than forcing use of Windows task manager to shut the server down, I want a privileged user on localhost to be able to shut it down from a webpage. This means that the command to shut down will be retrieved by one of the request handler threads. I notice that if I just exit from the thread, the application terminates, but usually with a warning that other threads were running when the thread exited. I know this may not be the cleanest way to do it, but it sure is easy!

So my questions are, "How bad is this -- really? Might open sockets be left open? Are there other consequences of such a graceless termination that I need to be aware of?"

Replies are listed 'Best First'.
Re: Exiting from a thread.
by kwaping (Priest) on Nov 03, 2005 at 22:43 UTC
    Check out some of these threads on inter process communication, that might point you in the right direction for a more graceful shutdown of your app.
      I know there are more graceful ways to do it. But my question is, "Are there reasons -- beyond aesthetics -- to go to all the trouble?"
        Are there reasons -- beyond aesthetics -- to go to all the trouble?
        No.

        Dave.