summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriliyan <iliyan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-10-22 19:34:18 +0000
committeriliyan <iliyan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-10-22 19:34:18 +0000
commit402a831c156e15ff96b1aa302e79d5dcd5562516 (patch)
treef73c2efde9210e05a0cb981f0eed516109314e3a
parentedc3dbd72c133bfebd03021c9b7c0a7633556eed (diff)
downloadATCD-402a831c156e15ff96b1aa302e79d5dcd5562516.tar.gz
ChangeLogTag: Sun Oct 22 19:33:23 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com> - imported changes
-rw-r--r--ChangeLog90
-rw-r--r--TAO/ChangeLog3
-rw-r--r--THANKS1
-rw-r--r--ace/Logging_Strategy.h8
-rw-r--r--ace/OS_NS_stdlib.cpp8
-rw-r--r--ace/Sock_Connect.cpp4
-rw-r--r--ace/TSS_T.cpp8
-rw-r--r--ace/TSS_T.h6
-rw-r--r--ace/Task_T.h12
-rw-r--r--ace/Token_Request_Reply.inl3
-rw-r--r--ace/Truncate.h94
-rw-r--r--bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb3
-rw-r--r--bin/PerlACE/ProcessVX.pm4
-rw-r--r--bin/PerlACE/ProcessVX_Unix.pm3
-rw-r--r--bin/PerlACE/Run_Test.pm7
-rw-r--r--configure.ac5
16 files changed, 216 insertions, 43 deletions
diff --git a/ChangeLog b/ChangeLog
index eb8fc45483e..e032c1adcab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,93 @@
+Sun Oct 22 08:11:25 UTC 2006 Ossama Othman <ossama_othman at symantec dot com>
+
+ * ace/Token_Request_Reply.inl (token_name):
+
+ Simplified use of ACE_Utils::Truncate<> function template. Only
+ the "TO" type must be explicitly specified. The "FROM" type is
+ deduced automatically by the compiler. Note that explicitly
+ specifying both template parameters is perfectly valid, too.
+
+ * ace/Truncate.h (Truncator):
+
+ Added char/int specializations for Borland to allow the
+ Integer_Truncate_Test to compile. All of the Borland-specific
+ Truncator specializations are meant to be a temporary workaround
+ until Borland C++ is capable of supporting the generalized
+ implementation.
+
+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
+ the check for epoll on Linux. Just let the check run - the macros
+ used checked the kernel/C version used to build the kernel instead
+ of the running kernel itself (I think...). In any event, the
+ use of the macros to disable the check prevented the check from
+ running on systems (such as RHEL 4) that do have epoll. Thank you
+ to Brian Campbell <becampbel at hotmail dot com> for researching
+ this area.
+
+Sat Oct 21 10:48:12 UTC 2006 Martin Corino <mcorino@remedy.nl>
+
+ * bin/PerlACE/RunTest.pm:
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/ProcessVX_Unix.pm:
+
+ Changes to accomodate running autotests for VxWorks RTPs on
+ Linux hosts.
+
+Sat Oct 21 04:34:33 UTC 2006 Ossama Othman <ossama_othman at symantec dot com>
+
+ * ace/OS_NS_stdlib.cpp:
+
+ Always include "ace/Numeric_Limits.h" in the ACE_LACKS_MKSTEMP
+ case. There is no need to conditionally include it when "max"
+ is undefined. Addresses VxWorks build errors.
+
+ * ace/Truncate.h:
+
+ Only use workaround for Borland compiler versions less than or
+ equal to 0x582. Thanks to Johnny for the suggestion.
+
+ * tests/Integer_Truncate_Test.cpp (sizeof_from_lt_sizeof_to):
+
+ Explicitly cast types in inequality comparison to silence
+ comparison of signed and unsigned warnings. It's not clear why
+ the warning is occuring since both types are unsigned.
+
+ Removed remaining set of redundant parentheses that were
+ missed in a previous commit.
+
Fri Oct 20 12:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
* ace/Service_Manger.{h,cpp}:
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index b7a569855fd..86f403b9d57 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -4,7 +4,8 @@ Fri Oct 20 16:54:32 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
Fixed a memory leak where the TAO_Adapter would be leaked in the
event that an exception occurred before the adapter was added to
- the adapter registry.
+ the adapter registry. Thanks to Artur DeEsperanto <DrEsperanto
+ at gmx dot net> for reporting this. This fixes bugid 2686.
* tao/PortableServer/Object_Adapter.cpp:
diff --git a/THANKS b/THANKS
index d4cd7888b22..728ddb88804 100644
--- a/THANKS
+++ b/THANKS
@@ -2153,6 +2153,7 @@ Zhamak Dehghani <zhamakd at gmail dot com>
Charles Calkins <calkinsc at ociweb dot com>
Manuel Traut <manut dot de at googlemail dot com>
Drew Reynaud <drewreynaud at hotmail dot com>
+Artur DeEsperanto <DrEsperanto at gmx dot net>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
diff --git a/ace/Logging_Strategy.h b/ace/Logging_Strategy.h
index 89b4427e0eb..bef98026f97 100644
--- a/ace/Logging_Strategy.h
+++ b/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/OS_NS_stdlib.cpp b/ace/OS_NS_stdlib.cpp
index 61b6a64fee8..0850b2a63df 100644
--- a/ace/OS_NS_stdlib.cpp
+++ b/ace/OS_NS_stdlib.cpp
@@ -25,9 +25,7 @@ ACE_RCSID (ace,
# include "ace/OS_NS_fcntl.h"
# include "ace/OS_NS_ctype.h"
# include "ace/OS_NS_sys_time.h"
-# if !defined (max)
-# include "ace/Numeric_Limits.h"
-# endif
+# include "ace/Numeric_Limits.h"
#endif /* ACE_LACKS_MKSTEMP */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -624,12 +622,8 @@ ACE_OS::mkstemp_emulation (ACE_TCHAR * s)
// greatly slowing down this mkstemp() implementation. It is more
// practical to limit the search space to UTF-8 / ASCII characters
// (i.e. 127 characters).
-#if defined (max)
- static float const MAX_VAL = static_cast<float> (127);
-#else
static float const MAX_VAL =
static_cast<float> (ACE_Numeric_Limits<char>::max ());
-#endif /* ACE_HAS_WINCE */
// Use high-order bits rather than low-order ones (e.g. rand() %
// MAX_VAL). See Numerical Recipes in C: The Art of Scientific
diff --git a/ace/Sock_Connect.cpp b/ace/Sock_Connect.cpp
index 1817f6d3372..04725652697 100644
--- a/ace/Sock_Connect.cpp
+++ b/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++)
@@ -1184,7 +1184,7 @@ ACE::get_ip_interfaces (size_t &count,
# endif
)
{
- int addrlen = static_cast<int> (sizeof (struct sockaddr_in));
+ int addrlen = static_cast<int> (sizeof (struct sockaddr_in));
# if defined (ACE_HAS_IPV6)
if (addr->sin_family == AF_INET6)
addrlen = static_cast<int> (sizeof (struct sockaddr_in6));
diff --git a/ace/TSS_T.cpp b/ace/TSS_T.cpp
index 1157bcbd38d..221b0f656b6 100644
--- a/ace/TSS_T.cpp
+++ b/ace/TSS_T.cpp
@@ -92,7 +92,7 @@ ACE_TSS<TYPE>::cleanup (void *ptr)
}
template <class TYPE> int
-ACE_TSS<TYPE>::ts_init (void)
+ACE_TSS<TYPE>::ts_init (void)
{
// Ensure that we are serialized!
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->keylock_, 0);
@@ -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/TSS_T.h b/ace/TSS_T.h
index ee336ebe870..98322a9295a 100644
--- a/ace/TSS_T.h
+++ b/ace/TSS_T.h
@@ -65,7 +65,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* However, if you must use an older compiler that won't work with a built-in
* type, the ACE_TSS_Type_Adapter class template, below, can be used for
* adapting built-in types to work with ACE_TSS.
- *
+ *
* @note Beware when creating static instances of this type
* (as with any other, btw). The unpredictable order of initialization
* across different platforms may cause a situation where one uses
@@ -125,7 +125,7 @@ public:
//@{
/**
* Get the thread-specific object for this object.
- *
+ *
* @return 0 if the object has never been initialized, otherwise returns
* the calling thread's copy of the data. The returned pointer
* may be 0 under odd error conditions; check errno for further
@@ -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/Task_T.h b/ace/Task_T.h
index 285972f9d1f..83e148e4a4e 100644
--- a/ace/Task_T.h
+++ b/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/Token_Request_Reply.inl b/ace/Token_Request_Reply.inl
index 9955c4c66ea..99a6b367a1a 100644
--- a/ace/Token_Request_Reply.inl
+++ b/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> (len));
}
// = Set/get the id of the client.
diff --git a/ace/Truncate.h b/ace/Truncate.h
index 252205f1223..31f83b84eb4 100644
--- a/ace/Truncate.h
+++ b/ace/Truncate.h
@@ -27,16 +27,16 @@
#include "ace/If_Then_Else.h"
#include "ace/Numeric_Limits.h"
-#if defined (__BORLANDC__) && __BORLANDC__ <= 0x800
+#if defined (__BORLANDC__) && __BORLANDC__ <= 0x582
# include "ace/Basic_Types.h"
-#endif /* __BORLANDC__ <= 0x800 */
+#endif /* __BORLANDC__ <= 0x582 */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_Utils
{
-#if !defined (__BORLANDC__) || __BORLANDC__ > 0x800
+#if !defined (__BORLANDC__) || __BORLANDC__ > 0x582
template<typename T> struct Sign_Check;
@@ -505,6 +505,55 @@ namespace ACE_Utils
//----------------------------------------------------------
// sizeof(FROM) > sizeof(TO)
//----------------------------------------------------------
+
+ template<>
+ struct Truncator<ACE_INT32, ACE_INT8>
+ {
+ ACE_INT8 operator() (ACE_INT32 val)
+ {
+ return
+ (val > ACE_Numeric_Limits<ACE_INT8>::max ()
+ ? ACE_Numeric_Limits<ACE_INT8>::max ()
+ : static_cast<ACE_INT8> (val));
+ }
+ };
+
+ template<>
+ struct Truncator<ACE_UINT32, ACE_UINT8>
+ {
+ ACE_UINT8 operator() (ACE_UINT32 val)
+ {
+ return
+ (val > ACE_Numeric_Limits<ACE_UINT8>::max ()
+ ? ACE_Numeric_Limits<ACE_UINT8>::max ()
+ : static_cast<ACE_UINT8> (val));
+ }
+ };
+
+ template<>
+ struct Truncator<ACE_INT32, ACE_UINT8>
+ {
+ ACE_UINT8 operator() (ACE_INT32 val)
+ {
+ return
+ (val > static_cast<ACE_INT32> (ACE_Numeric_Limits<ACE_UINT8>::max ())
+ ? ACE_Numeric_Limits<ACE_UINT8>::max ()
+ : static_cast<ACE_UINT8> (val));
+ }
+ };
+
+ template<>
+ struct Truncator<ACE_UINT32, ACE_INT8>
+ {
+ ACE_INT8 operator() (ACE_UINT32 val)
+ {
+ return
+ (val > static_cast<ACE_UINT32> (ACE_Numeric_Limits<ACE_INT8>::max ())
+ ? ACE_Numeric_Limits<ACE_INT8>::max ()
+ : static_cast<ACE_INT8> (val));
+ }
+ };
+
template<>
struct Truncator<ACE_INT64, ACE_INT32>
{
@@ -602,6 +651,43 @@ namespace ACE_Utils
//----------------------------------------------------------
// sizeof(FROM) < sizeof(TO)
//----------------------------------------------------------
+
+ template<>
+ struct Truncator<ACE_INT8, ACE_INT32>
+ {
+ ACE_INT32 operator() (ACE_INT8 val)
+ {
+ return static_cast<ACE_INT32> (val);
+ }
+ };
+
+ template<>
+ struct Truncator<ACE_UINT8, ACE_UINT32>
+ {
+ ACE_UINT32 operator() (ACE_UINT8 val)
+ {
+ return static_cast<ACE_UINT32> (val);
+ }
+ };
+
+ template<>
+ struct Truncator<ACE_UINT8, ACE_INT32>
+ {
+ ACE_INT32 operator() (ACE_UINT8 val)
+ {
+ return static_cast<ACE_INT32> (val);
+ }
+ };
+
+ template<>
+ struct Truncator<ACE_INT8, ACE_UINT32>
+ {
+ ACE_UINT32 operator() (ACE_INT8 val)
+ {
+ return static_cast<ACE_UINT32> (val);
+ }
+ };
+
template<>
struct Truncator<ACE_INT32, ACE_INT64>
{
@@ -645,7 +731,7 @@ namespace ACE_Utils
return Truncator<FROM, TO>() (val);
}
-#endif /* !__BORLANDC__ || __BORLANDC__ > 0x800 */
+#endif /* !__BORLANDC__ || __BORLANDC__ > 0x582 */
} // namespace ACE_Utils
diff --git a/bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb b/bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb
index 62c745db095..f6792f1f9eb 100644
--- a/bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb
+++ b/bin/MakeProjectCreator/config/ciao_static_dnc_app.mpb
@@ -1,6 +1,5 @@
// -*- MPC -*-
// $Id$
-project : ciao_nodemanager_svnt, ciao_nodeapplicationmanager, ciao_component_dnc, iortable {
-
+project : ciao_component_dnc, iortable, ciao_nodeapplicationmanager, ciao_nodemanager_svnt {
}
diff --git a/bin/PerlACE/ProcessVX.pm b/bin/PerlACE/ProcessVX.pm
index 74a8fbe3dd2..bc0247b54b5 100644
--- a/bin/PerlACE/ProcessVX.pm
+++ b/bin/PerlACE/ProcessVX.pm
@@ -53,10 +53,10 @@ for(my $i = 0; $i <= $#ARGV; ++$i) {
$PerlACE::ProcessVX::WAIT_DELAY_FACTOR = $ENV{"ACE_RUNTEST_DELAY"};
if ($OSNAME eq "MSWin32") {
- require PerlACE::ProcessVX_Win32;
+ require PerlACE::ProcessVX_Win32;
}
else {
- #require PerlACE::ProcessVX_Unix;
+ require PerlACE::ProcessVX_Unix;
}
1;
diff --git a/bin/PerlACE/ProcessVX_Unix.pm b/bin/PerlACE/ProcessVX_Unix.pm
index f400ad4328f..bd16a5d2230 100644
--- a/bin/PerlACE/ProcessVX_Unix.pm
+++ b/bin/PerlACE/ProcessVX_Unix.pm
@@ -9,7 +9,8 @@ use File::Spec;
use Config;
use FileHandle;
use Cwd;
-use Net::Telnet ();
+
+require Net::Telnet;
###############################################################################
diff --git a/bin/PerlACE/Run_Test.pm b/bin/PerlACE/Run_Test.pm
index a54f01a2a7c..a6d1253f0e9 100644
--- a/bin/PerlACE/Run_Test.pm
+++ b/bin/PerlACE/Run_Test.pm
@@ -4,7 +4,7 @@
# startup ARGV processing that is used by all tests.
use PerlACE::Process;
-use PerlACE::ProcessVX;
+##use PerlACE::ProcessVX;
use PerlACE::ConfigList;
package PerlACE;
@@ -23,6 +23,11 @@ my $config = new PerlACE::ConfigList;
$PerlACE::VxWorks_Test = $config->check_config("VxWorks");
$PerlACE::VxWorks_RTP_Test = $config->check_config("VxWorks_RTP");
+# load VxWorks Process helpers in case this is a VxWorks target build
+if ($PerlACE::VxWorks_Test or $PerlACE::VxWorks_RTP_Test) {
+ require PerlACE::ProcessVX;
+}
+
# Figure out the svc.conf extension
$svcconf_ext = $ENV{"ACE_RUNTEST_SVCCONF_EXT"};
if (!defined $svcconf_ext) {
diff --git a/configure.ac b/configure.ac
index 586ffef797a..3f16fba10ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3826,11 +3826,6 @@ case "$host" in
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <sys/epoll.h>
-#include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION (2,5,45)
-# error Disabling Linux epoll support. Kernel used in C library is too old.
-# error Linux kernel 2.5.45 or better is required.
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION (2,5,45) */
],
[
int const ACE_NUM_DESCRIPTORS = 10;