summaryrefslogtreecommitdiff
path: root/TAO/tao/default_server.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/default_server.h')
-rw-r--r--TAO/tao/default_server.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/TAO/tao/default_server.h b/TAO/tao/default_server.h
index 84e6f39b74d..57efe4afb4b 100644
--- a/TAO/tao/default_server.h
+++ b/TAO/tao/default_server.h
@@ -46,6 +46,20 @@ public:
virtual int server_connection_thread_flags (void);
virtual int server_connection_thread_count (void);
+ virtual ACE_Lock *create_servant_lock (void);
+ // The servant lock is based on the setting of POA, and concurrency
+ // strategy as follows:
+ // 1. If concurrency policy is reactive and POA is TSS
+ // then return ACE_Null_Mutex via ACE_Lock_Adapter.
+ //
+ // 2. If concurrency policy is non-reactive then
+ // return ACE_Thread_Mutex ...
+ //
+ // 3. If the POA is global then, return
+ // ACE_Null_Mutex iff ORB_init count == 1,
+ // else if ORB_init count > 1 return
+ // ACE_Thread_Mutex.
+
virtual ACE_Lock *create_event_loop_lock (void);
// If the ORB is single threaded or some form of ORB-per-thread then
// it is more efficient to use a Null_Mutex for the variables
@@ -79,6 +93,9 @@ protected:
Lock_Type poa_lock_type_;
// The type of lock to be returned by <create_poa_lock()>.
+ Lock_Type poa_mgr_lock_type_;
+ // The type of lock to be returned by <create_poa_mgr_lock()>.
+
Lock_Type event_loop_lock_type_;
// The type of lock to be returned by <create_event_loop_lock()>.