summaryrefslogtreecommitdiff
path: root/ace/OS.cpp
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2000-06-22 17:33:22 +0000
committerSteve Huston <shuston@riverace.com>2000-06-22 17:33:22 +0000
commit5fe91abd234c56e84c13998ddf52b611b6517e24 (patch)
tree2eab80786fb4ac0e2bfd26c7eb1f5030d640e598 /ace/OS.cpp
parentf134257b1ba4e0efc85f531352463d210279d452 (diff)
downloadATCD-5fe91abd234c56e84c13998ddf52b611b6517e24.tar.gz
ChangeLogTag:Thu Jun 22 13:29:22 2000 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ace/OS.cpp')
-rw-r--r--ace/OS.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/ace/OS.cpp b/ace/OS.cpp
index 33198ef64a3..69c28848db5 100644
--- a/ace/OS.cpp
+++ b/ace/OS.cpp
@@ -1,4 +1,4 @@
-// $Id$
+g// $Id$
#include "ace/OS.h"
#include "ace/Sched_Params.h"
@@ -2497,6 +2497,25 @@ ACE_Thread_Adapter::invoke (void)
# endif /* ACE_WIN32 */
#endif /* ACE_WIN32 || ACE_HAS_TSS_EMULATION */
+#if defined (ACE_PSOS)
+ // This sequence of calls is documented by ISI as the proper way to
+ // clean up a pSOS task. They affect different components, so only
+ // try the ones for components that are built with ACE.
+# if defined (SC_PREPC) && (SC_PREPC == YES)
+ ::fclose (0); // Return pREPC+ resources
+# endif /* SC_PREPC */
+# if defined (SC_PHILE) && (SC_PHILE == YES)
+ ::close_f (0); // Return pHILE+ resources
+# endif /* SC_PHILE */
+# if defined (SC_PNA) && (SC_PNA == YES)
+ ::close (0); // Return pNA+ resources
+# endif /* SC_PNA */
+# if defined (SC_SC_PREPC) && (SC_PREPC == YES)
+ ::free (-1); // Return pREPC+ memory
+# endif /* SC_PREPC */
+ status = ::t_delete (0); // Suicide - only returns on error
+#endif /* ACE_PSOS */
+
return status;
}