Re: terminiating a thread when main throws an error
<christopher@dailycrossword.com> wrote in message
news:1175459078.238210.203830@p15g2000hsd.googlegroups.com...
On Apr 1, 12:38 pm, "Karl Uppiano" <karl.uppi...@verizon.net> wrote:
If you mark any new threads you create as "daemon" (before you start
them),
the VM will exit when the main thread dies.
thank you
that would be the old assumption thing where I think of a daemon as a
thread that has a life of its own. Had it backwards as usual.
Cheers!
According to this
(http://en.wikipedia.org/wiki/Daemon_%28computer_software%29) a daemon is a
background process, so I guess it makes sense...
BTW, another way you could solve your original problem would be to create a
globally accessible boolean called "running", and all of your threads could
monitor that (e.g., while(running)...). Your main thread could catch any
exceptions and set running to false.
Yet another way would be for the main thread to keep references to all the
threads that it started, and interrupt them when an exception occurs. The
threads would have to monitor their interrupted status to see if they need
to exit (e.g., while(!interrupted()) ...). This latter approach would work
even if they were blocked in a wait. Unfortunately, you cannot interrupt a
blocking socket read (at least, not the last time I tried).
Plenty of ways to skin this cat...