summaryrefslogtreecommitdiff
path: root/ACE/ace/Thread_Manager.cpp
diff options
context:
space:
mode:
authorsma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-07-05 07:40:43 +0000
committersma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-07-05 07:40:43 +0000
commit395816ab03cd23fd716a6ed059c184e0ace6a303 (patch)
tree4212ce503cc29d42f8c1b7d981bd66e6b09eaa21 /ACE/ace/Thread_Manager.cpp
parent020d1ec59a5ca979216244b85431d12214b330f2 (diff)
downloadATCD-395816ab03cd23fd716a6ed059c184e0ace6a303.tar.gz
ChangeLogTag: Thu Jul 5 07:40:00 UTC 2007 Simon Massey <sma@prismtech.com>
Diffstat (limited to 'ACE/ace/Thread_Manager.cpp')
-rw-r--r--ACE/ace/Thread_Manager.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/ACE/ace/Thread_Manager.cpp b/ACE/ace/Thread_Manager.cpp
index 709873d2808..7864289849e 100644
--- a/ACE/ace/Thread_Manager.cpp
+++ b/ACE/ace/Thread_Manager.cpp
@@ -532,6 +532,7 @@ ace_thread_manager_adapter (void *args)
// Invoke the user-supplied function with the args.
void *status = thread_args->invoke ();
+ delete static_cast<ACE_Base_Thread_Adapter> (thread_args);
return status;
}
#endif
@@ -585,6 +586,7 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
new_thr_desc.get ()),
-1);
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ auto_ptr <ACE_Base_Thread_Adapter> auto_thread_args (static_cast<ACE_Base_Thread_Adapter *> (thread_args));
ACE_TRACE ("ACE_Thread_Manager::spawn_i");
ACE_hthread_t thr_handle;
@@ -639,6 +641,7 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
new_thr_desc->sync_->release ();
return -1;
}
+ auto_thread_args.release ();
#if defined (ACE_HAS_WTHREADS)
// Have to duplicate handle if client asks for it.