diff options
author | cleeland <cleeland@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-11-13 08:17:38 +0000 |
---|---|---|
committer | cleeland <cleeland@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-11-13 08:17:38 +0000 |
commit | 0d4e28d6504f6d8e096aa080ad882a149607b40d (patch) | |
tree | 7e5203725cbd2943127f0ea2af48429712372ce8 /ace/Object_Manager.cpp | |
parent | b137f479711eec3db913a69c2a29b2fb7e4775a7 (diff) | |
download | ATCD-0d4e28d6504f6d8e096aa080ad882a149607b40d.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) |