summaryrefslogtreecommitdiff
path: root/ACE/ace/Thread_Manager.cpp
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2008-08-07 20:23:07 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2008-08-07 20:23:07 +0000
commitb31aaa377282d63b9f4a6bd22f54257180fbad59 (patch)
tree371fd12f9a9711fab9676659ac3ebb0fe6073d94 /ACE/ace/Thread_Manager.cpp
parent08fff03cd764ca68f8a1bc35a82020ced9508e07 (diff)
downloadATCD-b31aaa377282d63b9f4a6bd22f54257180fbad59.tar.gz
ChangeLogTag: Thu Aug 7 20:21:29 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'ACE/ace/Thread_Manager.cpp')
-rw-r--r--ACE/ace/Thread_Manager.cpp89
1 files changed, 63 insertions, 26 deletions
diff --git a/ACE/ace/Thread_Manager.cpp b/ACE/ace/Thread_Manager.cpp
index f9a6b934bde..309709e0398 100644
--- a/ACE/ace/Thread_Manager.cpp
+++ b/ACE/ace/Thread_Manager.cpp
@@ -7,20 +7,18 @@
#include "ace/Singleton.h"
#include "ace/Auto_Ptr.h"
#include "ace/Guard_T.h"
-
#include "ace/Time_Value.h"
#include "ace/OS_NS_sys_time.h"
+#include "ace/Truncate.h"
#if !defined (__ACE_INLINE__)
#include "ace/Thread_Manager.inl"
#endif /* __ACE_INLINE__ */
-
ACE_RCSID (ace,
Thread_Manager,
"$Id$")
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_At_Thread_Exit::~ACE_At_Thread_Exit (void)
@@ -1889,8 +1887,12 @@ ACE_Thread_Manager::num_threads_in_task (ACE_Task_Base *task)
for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
!iter.done ();
iter.advance ())
- if (iter.next ()->task_ == task)
- ++threads_count;
+ {
+ if (iter.next ()->task_ == task)
+ {
+ ++threads_count;
+ }
+ }
return threads_count;
}
@@ -1911,23 +1913,34 @@ ACE_Thread_Manager::task_all_list (ACE_Task_Base *task_list[],
iter.advance ())
{
if (task_list_count >= n)
- break;
+ {
+ break;
+ }
ACE_Task_Base *task_p = iter.next ()->task_;
+
if (0 != task_p)
{
// This thread has a task pointer; see if it's already in the
// list. Don't add duplicates.
size_t i = 0;
+
for (; i < task_list_count; ++i)
- if (task_list[i] == task_p)
- break;
+ {
+ if (task_list[i] == task_p)
+ {
+ break;
+ }
+ }
+
if (i == task_list_count) // No match - add this one
- task_list[task_list_count++] = task_p;
+ {
+ task_list[task_list_count++] = task_p;
+ }
}
}
- return task_list_count;
+ return ACE_Utils::truncate_cast<ssize_t> (task_list_count);
}
// Returns in thread_list a list of all thread ids
@@ -1946,13 +1959,15 @@ ACE_Thread_Manager::thread_all_list (ACE_thread_t thread_list[],
iter.advance ())
{
if (thread_count >= n)
- break;
+ {
+ break;
+ }
thread_list[thread_count] = iter.next ()->thr_id_;
++thread_count;
}
- return thread_count;
+ return ACE_Utils::truncate_cast<ssize_t> (thread_count);
}
@@ -1970,16 +1985,24 @@ ACE_Thread_Manager::thr_state (ACE_thread_t id,
if (self_check)
{
ACE_Thread_Descriptor *desc = ACE_LOG_MSG->thr_desc ();
+
if (desc == 0)
- return 0; // Always return false.
+ {
+ return 0; // Always return false.
+ }
+
state = desc->thr_state_;
}
else
{
// Not calling from self, have to look it up from the list.
ACE_FIND (this->find_thread (id), ptr);
+
if (ptr == 0)
- return 0;
+ {
+ return 0;
+ }
+
state = ptr->thr_state_;
}
@@ -2005,7 +2028,9 @@ ACE_Thread_Manager::task_list (int grp_id,
iter.advance ())
{
if (task_list_count >= n)
- break;
+ {
+ break;
+ }
if (iter.next ()->grp_id_ == grp_id
&& this->find_task (iter.next ()->task_, i) == 0)
@@ -2017,7 +2042,7 @@ ACE_Thread_Manager::task_list (int grp_id,
++i;
}
- return task_list_count;
+ return ACE_Utils::truncate_cast<ssize_t> (task_list_count);
}
// Returns in thread_list a list of thread ids in an ACE_Task.
@@ -2037,7 +2062,9 @@ ACE_Thread_Manager::thread_list (ACE_Task_Base *task,
iter.advance ())
{
if (thread_count >= n)
- break;
+ {
+ break;
+ }
if (iter.next ()->task_ == task)
{
@@ -2046,7 +2073,7 @@ ACE_Thread_Manager::thread_list (ACE_Task_Base *task,
}
}
- return thread_count;
+ return ACE_Utils::truncate_cast<ssize_t> (thread_count);
}
// Returns in thread_list a list of thread handles in an ACE_Task.
@@ -2066,7 +2093,9 @@ ACE_Thread_Manager::hthread_list (ACE_Task_Base *task,
iter.advance ())
{
if (hthread_count >= n)
- break;
+ {
+ break;
+ }
if (iter.next ()->task_ == task)
{
@@ -2075,7 +2104,7 @@ ACE_Thread_Manager::hthread_list (ACE_Task_Base *task,
}
}
- return hthread_count;
+ return ACE_Utils::truncate_cast<ssize_t> (hthread_count);
}
ssize_t
@@ -2093,7 +2122,9 @@ ACE_Thread_Manager::thread_grp_list (int grp_id,
iter.advance ())
{
if (thread_count >= n)
- break;
+ {
+ break;
+ }
if (iter.next ()->grp_id_ == grp_id)
{
@@ -2102,7 +2133,7 @@ ACE_Thread_Manager::thread_grp_list (int grp_id,
}
}
- return thread_count;
+ return ACE_Utils::truncate_cast<ssize_t> (thread_count);
}
// Returns in thread_list a list of thread handles in an ACE_Task.
@@ -2122,7 +2153,9 @@ ACE_Thread_Manager::hthread_grp_list (int grp_id,
iter.advance ())
{
if (hthread_count >= n)
- break;
+ {
+ break;
+ }
if (iter.next ()->grp_id_ == grp_id)
{
@@ -2131,7 +2164,7 @@ ACE_Thread_Manager::hthread_grp_list (int grp_id,
}
}
- return hthread_count;
+ return ACE_Utils::truncate_cast<ssize_t> (hthread_count);
}
int
@@ -2143,8 +2176,12 @@ ACE_Thread_Manager::set_grp (ACE_Task_Base *task, int grp_id)
for (ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor> iter (this->thr_list_);
!iter.done ();
iter.advance ())
- if (iter.next ()->task_ == task)
- iter.next ()->grp_id_ = grp_id;
+ {
+ if (iter.next ()->task_ == task)
+ {
+ iter.next ()->grp_id_ = grp_id;
+ }
+ }
return 0;
}