Re: How do you kill a completly locked up thread?
- From: "Ben Voigt [C++ MVP]" <rbv@xxxxxxxxxxxxx>
- Date: Wed, 16 Jan 2008 09:37:18 -0600
"TheSilverHammer" <TheSilverHammer@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in
message news:7D316256-2328-4B25-B6F2-A158E87C792F@xxxxxxxxxxxxxxxx
Because C# has no native SSH class, I am using SharpSSH. Sometimes, for
reasons I do not know, a Connect call will totally lock up the thread and
never return. I am sure it has something to do with weirdness going on
with
the server I am talking to. Anyhow, this locked up state happens once in
a
while (maybe once per day) and I can't figure out how to deal with the
locked
up thread.
If I issue a Thread.Abort() the exception never gets thrown in the thread
because it is locked up. This seems to be the only C# method I know of
to
kill a thread. Is there some other way to kill off a thread?
If you need to terminate a thread while it's running native code, especially
inside a kernel call, you have no way of knowing what state it is modifying
and keeping it coherent. You have to assume the whole process is corrupted.
The only safe way to forcibly end a failed thread like you have is to end
the process containing it.
Do you have access to the socket handle for the connection? If you shutdown
(non-gracefully by setting SO_DONTLINGER) the socket from a different thread
then that will probably cause the stuck operation to complete immediately.
.
- Follow-Ups:
- Re: How do you kill a completely locked up thread?
- From: TheSilverHammer
- Re: How do you kill a completely locked up thread?
- Prev by Date: Re: Send Ctrl+C in testcase.
- Next by Date: Re: Web Services with SSL
- Previous by thread: Exposing Dependency Properties
- Next by thread: Re: How do you kill a completely locked up thread?
- Index(es):
Relevant Pages
|