summaryrefslogtreecommitdiff
path: root/ace/Task.cpp
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-24 03:17:05 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-24 03:17:05 +0000
commitb8b567966527cd17ca97aefd172bd5c5fb733760 (patch)
treee338da26bd680d088e8fd80629e212b7de45af54 /ace/Task.cpp
parentfb7e091cc719a5cc42cdecb7963224f1eae945e9 (diff)
downloadATCD-b8b567966527cd17ca97aefd172bd5c5fb733760.tar.gz
unify thread adapter use between ACE_OS and ACE_Thread_Manager
Diffstat (limited to 'ace/Task.cpp')
-rw-r--r--ace/Task.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/ace/Task.cpp b/ace/Task.cpp
index dd61a066c15..ada163c6bf7 100644
--- a/ace/Task.cpp
+++ b/ace/Task.cpp
@@ -181,9 +181,21 @@ ACE_Task_Base::svc_run (void *args)
#endif /* ACE_HAS_SIG_C_FUNC */
// Call the Task's svc() hook method.
- return (void *) t->svc ();
+ void * status = (void *) t->svc ();
- /* NOTREACHED */
+// If we changed this zero change the other if in OS.cpp Thread_Adapter::invoke
+#if 1
+ // Call the <Task->close> hook.
+ ACE_Thread_Manager *thr_mgr_ptr = t->thr_mgr ();
+
+ // This calls the Task->close () hook.
+ t->cleanup (t, 0);
+
+ // This prevents a second invocation of the cleanup code
+ // (called later by <ACE_Thread_Manager::exit>.
+ thr_mgr_ptr->at_exit (t, 0, 0);
+#endif
+ return status;
}
// Forward the call to close() so that existing applications don't