summaryrefslogtreecommitdiff
path: root/ace/Task.cpp
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1997-10-11 02:58:21 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1997-10-11 02:58:21 +0000
commit002ed86e9cc7716dc33289d3b54cfc6ac57b6e97 (patch)
treec1fd7b32d8fdbb95a4da9e4e073ed17be6d79f8d /ace/Task.cpp
parent5e4d72d99b8b4757c39d6c89022dee72aa3bf2f4 (diff)
downloadATCD-002ed86e9cc7716dc33289d3b54cfc6ac57b6e97.tar.gz
*** empty log message ***
Diffstat (limited to 'ace/Task.cpp')
-rw-r--r--ace/Task.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/ace/Task.cpp b/ace/Task.cpp
index 028dab05688..93de047f845 100644
--- a/ace/Task.cpp
+++ b/ace/Task.cpp
@@ -123,6 +123,14 @@ ACE_Task_Base::cleanup (void *object, void *)
t->close ();
}
+#if defined (ACE_HAS_SIG_C_FUNC)
+extern "C" void
+ACE_Task_Base_cleanup (void *object, void *)
+{
+ ACE_Task_Base::cleanup (object);
+}
+#endif /* ACE_HAS_SIG_C_FUNC */
+
void *
ACE_Task_Base::svc_run (void *args)
{
@@ -133,7 +141,12 @@ ACE_Task_Base::svc_run (void *args)
// Register ourself with our <Thread_Manager>'s thread exit hook
// mechanism so that our close() hook will be sure to get invoked
// when this thread exits.
+
+#if defined ACE_HAS_SIG_C_FUNC
+ t->thr_mgr ()->at_exit (t, ACE_Task_Base_cleanup, 0);
+#else
t->thr_mgr ()->at_exit (t, ACE_Task_Base::cleanup, 0);
+#endif /* ACE_HAS_SIG_C_FUNC */
// Call the Task's svc() hook method.
return (void *) t->svc ();