diff options
author | Steve Huston <shuston@riverace.com> | 2006-10-21 18:51:54 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2006-10-21 18:51:54 +0000 |
commit | 3104dd867fb4f4c3dacd64afdd4c63419dd81278 (patch) | |
tree | 034f649379b8695a53c730802e1189099d6c5606 | |
parent | 05f8f9198808c736ca5bbc3b4226446da42bb613 (diff) | |
download | ATCD-3104dd867fb4f4c3dacd64afdd4c63419dd81278.tar.gz |
ChangeLogTag:Sat Oct 21 14:49:21 UTC 2006 Steve Huston <shuston@riverace.com>
-rw-r--r-- | ACE/ChangeLog | 31 | ||||
-rw-r--r-- | ACE/ace/Logging_Strategy.h | 8 | ||||
-rw-r--r-- | ACE/ace/Sock_Connect.cpp | 2 | ||||
-rw-r--r-- | ACE/ace/TSS_T.cpp | 6 | ||||
-rw-r--r-- | ACE/ace/TSS_T.h | 2 | ||||
-rw-r--r-- | ACE/ace/Task_T.h | 12 | ||||
-rw-r--r-- | ACE/ace/Token_Request_Reply.inl | 3 |
7 files changed, 48 insertions, 16 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index 72f9a749db3..aad8e17429f 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,34 @@ +Sat Oct 21 14:49:21 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/TSS_T.{h cpp}: Added "volatile" keyword to once_ member + since it can be changed by other threads. Removed the lock + acquiring from the ts_object() methods - after once_ is checked, + there are no further needs for locks. When needed, the key_ is + set up by ts_init() which does acquire a lock. This avoids a lock + acquire/release cycle on all calls when initialization of the + ACE_TSS object is not required, speeding up performance. Thanks to + Guy Peleg <guy dot peleg at amdocs dot com> for reporting this and + to Russell Mora <russell_mora at symantec dot com> for assisting in + analyzing the situation and recommending the particular fixes. + + * ace/Logging_Strategy.h: Minor doxygen improvements. + + * ace/Sock_Connect.cpp: When checking for IPv6 interfaces on Windows, + there's two conditionally compiled blocks of code. One block was + built if ACE_HAS_IPV6 SIO_ADDRESS_LIST_QUERY are both defined; the + other was built if ACE_HAS_IPV6 is defined. Added the check for + SIO_ADDRESS_LIST_QUERY to the second case as well since it makes + no sense to run it if the first isn't built. Thanks to Andre + Kostur for this fix. Also see: + Mon Oct 16 14:24:25 UTC 2006 Steve Huston <shuston@riverace.com> + + * ace/Task_T.h (reply): Clarified what happens on a reply(). Thanks + to Doug Schmidt for explaining the rationale for this. + + * ace/Token_Request_Reply.inl (token_name): VC7.1 had trouble grokking + the ACE_Utils::Truncate arguments in this case, so add the types + to a more complete specification of what template is desired. + Sat Oct 21 15:19:46 UTC 2006 Steve Huston <shuston@riverace.com> * configure.ac: Removed the check for LINUX_VERSION that disabled diff --git a/ACE/ace/Logging_Strategy.h b/ACE/ace/Logging_Strategy.h index 89b4427e0eb..bef98026f97 100644 --- a/ACE/ace/Logging_Strategy.h +++ b/ACE/ace/Logging_Strategy.h @@ -30,8 +30,9 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL /** * @class ACE_Logging_Strategy * - * @brief This class provides the hooks to control the output produced - * by any of the network services. + * @brief This class provides a way to dynamically configure the ACE logging + * mechanism at run time as well as enable the mechanisms for limiting + * log file size and log file backup/rotation capability. * * Depending upon when this service is invoked and with what * flags, the output of other network services can be @@ -73,7 +74,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL * and then logging_strategy will use your reactor. If you're * dynamically linking the @c ACE_Logging_Strategy then you can use * the @c ACE_Dynamic_Service template to get a pointer to the - * @c ACE_Logging_Strategy. */ + * @c ACE_Logging_Strategy. + */ class ACE_Export ACE_Logging_Strategy : public ACE_Service_Object { public: diff --git a/ACE/ace/Sock_Connect.cpp b/ACE/ace/Sock_Connect.cpp index 1817f6d3372..f7b3e3f2129 100644 --- a/ACE/ace/Sock_Connect.cpp +++ b/ACE/ace/Sock_Connect.cpp @@ -632,7 +632,7 @@ ACE::get_ip_interfaces (size_t &count, ++count; } -# if defined (ACE_HAS_IPV6) +# if defined (ACE_HAS_IPV6) && defined (SIO_ADDRESS_LIST_QUERY) // Now go through the list and transfer the good ones to the list of // because they're down or don't have an IP address. for (i = 0; i < n_v6_interfaces; i++) diff --git a/ACE/ace/TSS_T.cpp b/ACE/ace/TSS_T.cpp index 1157bcbd38d..97490760507 100644 --- a/ACE/ace/TSS_T.cpp +++ b/ACE/ace/TSS_T.cpp @@ -263,9 +263,6 @@ ACE_TSS<TYPE>::ts_get (void) const template <class TYPE> TYPE * ACE_TSS<TYPE>::ts_object (void) const { - // Ensure that we are serialized! - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, (ACE_Thread_Mutex &) this->keylock_, 0); - if (this->once_ == 0) // Return 0 if we've never been initialized. return 0; @@ -312,9 +309,6 @@ ACE_TSS<TYPE>::ts_object (TYPE *new_ts_obj) return 0; } - // Ensure that we are serialized! - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->keylock_, 0); - TYPE *ts_obj = 0; #if defined (ACE_HAS_THR_C_DEST) diff --git a/ACE/ace/TSS_T.h b/ACE/ace/TSS_T.h index ee336ebe870..f0ba4479b45 100644 --- a/ACE/ace/TSS_T.h +++ b/ACE/ace/TSS_T.h @@ -190,7 +190,7 @@ protected: ACE_Thread_Mutex keylock_; /// "First time in" flag. - int once_; + volatile int once_; /// Key for the thread-specific error data. ACE_thread_key_t key_; diff --git a/ACE/ace/Task_T.h b/ACE/ace/Task_T.h index 285972f9d1f..83e148e4a4e 100644 --- a/ACE/ace/Task_T.h +++ b/ACE/ace/Task_T.h @@ -96,9 +96,15 @@ public: // Should be protected: int ungetq (ACE_Message_Block *, ACE_Time_Value *timeout = 0); /** - * Turn the message around and send it back down the Stream. Note - * that <timeout> uses <{absolute}> time rather than <{relative}> - * time. + * Turn the message around, sending it in the opposite direction in + * the stream. To do this, the message is put onto the task next in + * the stream after this task's sibling. + * + * @param ACE_Message_Block Pointer to the block that is used in the reply. + * @param timeout The absolute time at which the put operation used to + * send the message block to the next module in the stream + * will time out. If 0, this call blocks until it can be + * completed. */ int reply (ACE_Message_Block *, ACE_Time_Value *timeout = 0); diff --git a/ACE/ace/Token_Request_Reply.inl b/ACE/ace/Token_Request_Reply.inl index 9955c4c66ea..e75d6e15b63 100644 --- a/ACE/ace/Token_Request_Reply.inl +++ b/ACE/ace/Token_Request_Reply.inl @@ -147,8 +147,7 @@ ACE_Token_Request::token_name (const ACE_TCHAR *token_name, // ... then add in the amount of the variable-sized portion. len += token_name_length + client_id_length + 1; - - this->length (ACE_Utils::Truncate (len)); + this->length (ACE_Utils::Truncate<ACE_UINT32, size_t> (len)); } // = Set/get the id of the client. |