summaryrefslogtreecommitdiff
path: root/ace/Object_Manager.cpp
diff options
context:
space:
mode:
authorcleeland <cleeland@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-11-13 08:17:38 +0000
committercleeland <cleeland@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-11-13 08:17:38 +0000
commit0d4e28d6504f6d8e096aa080ad882a149607b40d (patch)
tree7e5203725cbd2943127f0ea2af48429712372ce8 /ace/Object_Manager.cpp
parentb137f479711eec3db913a69c2a29b2fb7e4775a7 (diff)
downloadATCD-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.cpp8
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)