diff options
author | Chris Cleeland <chris.cleeland@gmail.com> | 1997-11-13 08:17:38 +0000 |
---|---|---|
committer | Chris Cleeland <chris.cleeland@gmail.com> | 1997-11-13 08:17:38 +0000 |
commit | 8879226c8d04d00e28fe9a15bb4c4e740b2c8bf8 (patch) | |
tree | 7e5203725cbd2943127f0ea2af48429712372ce8 /ace/Object_Manager.cpp | |
parent | 2ca0cfef04028544ccf7e2149c6d7152e5dd37d7 (diff) | |
download | ATCD-8879226c8d04d00e28fe9a15bb4c4e740b2c8bf8.tar.gz |
* ace/Signal.i: Changed to use new Object Manager member.
* ace/Object_Manager.cpp: Added a new member to the Object
Manager--default_mask. This is the default signal mask employed
by ACE_Sig_Set. Moving the object into the OM saves cycles b/c we
only construct it once and just re-use every time.
* ace/Handle_Set.cpp: Added two new macros--ACE_DIV_BY_WORDSIZE and
ACE_MULT_BY_WORDSIZE--which either divide or multiply the argument
by ACE_Handle_Set::WORDSIZE. The manner in which this is
accomplished is governed by the #define
ACE_USE_SHIFT_FOR_EFFICIENCY--when defined, ACE tries to use
shifts to implement multiplication and division rather than actual
multiply and divide operations. Currently this is disabled.
Diffstat (limited to 'ace/Object_Manager.cpp')
-rw-r--r-- | ace/Object_Manager.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ace/Object_Manager.cpp b/ace/Object_Manager.cpp index 095f9600e75..2df057ef17c 100644 --- a/ace/Object_Manager.cpp +++ b/ace/Object_Manager.cpp @@ -13,6 +13,7 @@ #include "ace/Array.h" #include "ace/Synch.h" #include "ace/Malloc.h" +#include "ace/Signal.h" #if !defined (__ACE_INLINE__) #include "ace/Object_Manager.i" @@ -40,6 +41,7 @@ ACE_Object_Manager *ACE_Object_Manager::instance_ = 0; int ACE_Object_Manager::starting_up_ = 1; int ACE_Object_Manager::shutting_down_ = 0; +ACE_Sig_Set *ACE_Object_Manager::default_mask_p_ = 0; void *ACE_Object_Manager::managed_object[ACE_MAX_MANAGED_OBJECTS] = { 0 }; @@ -212,6 +214,9 @@ ACE_Object_Manager::ACE_Object_Manager (void) // Finally, indicate that the ACE_Object_Manager instance has been // constructed. ACE_Object_Manager::starting_up_ = 0; + + ACE_NEW (ACE_Object_Manager::default_mask_p_, + ACE_Sig_Set(1)); } ACE_Object_Manager * @@ -714,6 +719,9 @@ ACE_Object_Manager::~ACE_Object_Manager (void) #if defined (ACE_HAS_THREADS) ACE_Static_Object_Lock::cleanup_lock (); #endif /* ACE_HAS_THREADS */ + + delete default_mask_p_; + default_mask_p_ = 0; } #if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) |