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.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/ace/Thread_Manager.cpp b/ace/Thread_Manager.cpp
index ee86fe81903..1690b70a89b 100644
--- a/ace/Thread_Manager.cpp
+++ b/ace/Thread_Manager.cpp
@@ -316,7 +316,8 @@ ACE_Thread_Manager::spawn_n (size_t n,
long flags,
long priority,
int grp_id,
- ACE_Task_Base *task)
+ ACE_Task_Base *task,
+ ACE_hthread_t thread_handles[])
{
ACE_TRACE ("ACE_Thread_Manager::spawn_n");
ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));
@@ -328,8 +329,16 @@ ACE_Thread_Manager::spawn_n (size_t n,
{
// @@ What should happen if this fails?! e.g., should we try to
// cancel the other threads that we've already spawned or what?
- if (this->spawn_i (func, args, flags, 0, 0, priority, grp_id,
- 0, 0, task) == -1)
+ if (this->spawn_i (func,
+ args,
+ flags,
+ 0,
+ thread_handles == 0 ? 0 : &thread_handles[i],
+ priority,
+ grp_id,
+ 0,
+ 0,
+ task) == -1)
return -1;
}