diff options
author | levine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-11-03 20:01:38 +0000 |
---|---|---|
committer | levine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-11-03 20:01:38 +0000 |
commit | 6bf62f34d5cf09acf3f481471f4d5b2fe78b1ce4 (patch) | |
tree | 93a80b3c187b9cea83593c32d8117a9367e6efc3 | |
parent | 78e276c1ec250bd359ca7513a9ae14ec9b5c13ec (diff) | |
download | ATCD-6bf62f34d5cf09acf3f481471f4d5b2fe78b1ce4.tar.gz |
added documenation of ACE_HAS_NONSTATIC_OBJECT_MANAGER
-rw-r--r-- | ace/Object_Manager.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ace/Object_Manager.h b/ace/Object_Manager.h index 511003bd9e0..cc5f6510ae7 100644 --- a/ace/Object_Manager.h +++ b/ace/Object_Manager.h @@ -117,6 +117,29 @@ class ACE_Export ACE_Object_Manager // building the ACE library and your applications. This #define // is enabled in the VxWorks config files that are supplied with // ACE. + // + // By default (except on VxWorks), the ACE library creates a + // static, singleton <ACE_Object_Manager> instance. The + // instance is placed in global program data, and constructed + // via a static object constructor. Optionally, the + // <ACE_Object_Manager> instance can be created on the stack of + // the main program thread. This option is enabled by added + // "#define ACE_HAS_NONSTATIC_OBJECT_MANAGER" to ace/config.h + // before building libACE. This option is enabled by default on + // VxWorks. + // + // With ACE_HAS_NONSTATIC_OBJECT_MANAGER enabled, the ACE + // library has no static objects that require destruction. + // However, there are two drawbacks to using it: + // + // 1) main (int, char *[]) must be declared with arguments, even + // if they're not used. All of ACE is converted to this, so + // just applications have to be concerned with it. + // + // 2) If there any static objects that depend on those that are + // cleaned up by the Object_Manager, they'll get cleaned up too + // late. The ACE tests do not violate this requirement. + // However, applications may have trouble with it. { public: static int at_exit (ACE_Cleanup *object, void *param = 0); |