summaryrefslogtreecommitdiff
path: root/ace/Thread_Manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Thread_Manager.cpp')
-rw-r--r--ace/Thread_Manager.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp
index 388f83f1a9f..1573e94ed26 100644
--- a/ace/Thread_Manager.cpp
+++ b/ace/Thread_Manager.cpp
@@ -435,13 +435,17 @@ ACE_Thread_Manager::kill_thr (int i, int signum)
{
ACE_TRACE ("ACE_Thread_Manager::kill_thr");
- int result = ACE_Thread::kill ((ACE_thread_t) this->thr_table_[i].thr_handle_,
+ int result = ACE_Thread::kill ((ACE_thread_t) this->thr_table_[i].thr_id_,
signum);
- if (result != 0)
+ if (result != 0)
{
+ // We need to save this across calls to remove_thr() since that
+ // call may reset errno.
+ int error = errno;
+
this->remove_thr (i);
- errno = result;
+ errno = error;
return -1;
}
else