summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-20 21:25:08 +0000
committerkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-20 21:25:08 +0000
commit86c824991fde002438a20eb35214eb6f2a93913e (patch)
tree1d6c138963805fb6b909c575728ce9589124f215
parent0c912e3bc8e325ca20137bb6b954e58e2f8e86d1 (diff)
downloadATCD-86c824991fde002438a20eb35214eb6f2a93913e.tar.gz
*** empty log message ***
-rw-r--r--tests/Cached_Conn_Test.cpp37
1 files changed, 31 insertions, 6 deletions
diff --git a/tests/Cached_Conn_Test.cpp b/tests/Cached_Conn_Test.cpp
index d67e3f11400..8ce93308b86 100644
--- a/tests/Cached_Conn_Test.cpp
+++ b/tests/Cached_Conn_Test.cpp
@@ -47,6 +47,7 @@
#include "ace/Get_Opt.h"
#include "ace/Caching_Utility_T.h"
#include "ace/Cached_Connect_Strategy_T.h"
+#include "Handle_Consumer.h"
#if defined(_MSC_VER)
#pragma warning(disable:4503)
@@ -166,6 +167,7 @@ static int listen_once = 1;
static int iterations = 2000;
static int user_has_specified_iterations = 0;
static double purge_percentage = 20;
+static size_t keep_available_handles = 10;
static Caching_Strategy_Type caching_strategy_type = ACE_ALL;
static CACHED_CONNECT_STRATEGY *connect_strategy = 0;
@@ -174,9 +176,7 @@ static CACHED_CONNECT_STRATEGY *connect_strategy = 0;
static void
out_of_sockets_handler (void)
{
- // ENOBUFS had to be checked on NT while ENOENT check had to be added for
- // Solaris + Linux.
- if (errno == EMFILE || errno == ENOBUFS || errno == ENOENT)
+ if (ACE::out_of_handles (errno))
{
// Close connections which are cached by explicitly purging the
// connection cache maintained by the connector.
@@ -215,7 +215,7 @@ cached_connect (STRATEGY_CONNECTOR &con,
-1);
// Reset Svc_Handler state.
- svc_handler->state (ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE);
+ svc_handler->recycle_state (ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE);
return 0;
}
@@ -380,7 +380,7 @@ test_caching_strategy_type (void)
int
parse_args (int argc, char *argv[])
{
- ACE_Get_Opt get_opt (argc, argv, "l:i:p:c:d");
+ ACE_Get_Opt get_opt (argc, argv, "l:i:p:c:a:d");
int cc;
@@ -413,6 +413,9 @@ parse_args (int argc, char *argv[])
if (ACE_OS::strcmp (get_opt.optarg, "fifo") == 0)
caching_strategy_type = ACE_FIFO;
break;
+ case 'a':
+ keep_available_handles = atoi (get_opt.optarg);
+ break;
case '?':
case 'h':
default:
@@ -422,7 +425,8 @@ parse_args (int argc, char *argv[])
ASYS_TEXT ("[-i (iterations)] ")
ASYS_TEXT ("[-l (listen once)] ")
ASYS_TEXT ("[-d (addition debugging output)] ")
- ASYS_TEXT ("[-p (purge percent)] "),
+ ASYS_TEXT ("[-p (purge percent)] ")
+ ASYS_TEXT ("[-a (keep_available_handles)] "),
argv[0]));
return -1;
}
@@ -453,6 +457,11 @@ main (int argc,
// Remove the extra debugging attributes from Log_Msg output.
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::VERBOSE_LITE);
+ ACE_Reactor::instance ();
+
+ Handle_Consumer handle_consumer;
+ handle_consumer.consume_handles (keep_available_handles);
+
// Do we need to test all the strategies. Note, that the less
// useful null strategy is ignored in this case.
if (caching_strategy_type == ACE_ALL)
@@ -500,6 +509,11 @@ main (int argc,
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+// = Consume handles
+template class ACE_Node<ACE_HANDLE>;
+template class ACE_Unbounded_Set<ACE_HANDLE>;
+template class ACE_Unbounded_Set_Iterator<ACE_HANDLE>;
+
template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
template class ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>;
template class ACE_NOOP_Creation_Strategy<Svc_Handler>;
@@ -584,8 +598,16 @@ template class ACE_Cleanup_Strategy<ADDR, CACHED_HANDLER, HASH_MAP>;
template class ACE_Recyclable_Handler_Cleanup_Strategy<ADDR, CACHED_HANDLER, HASH_MAP>;
template class ACE_Recyclable_Handler_Caching_Utility<ADDR, CACHED_HANDLER, HASH_MAP, HASH_MAP_ITERATOR, ATTRIBUTES>;
+template class ACE_Reverse_Lock<ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Guard<ACE_Reverse_Lock<ACE_SYNCH_NULL_MUTEX> >;
+
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+// = Consume handles
+#pragma instantiate ACE_Node<ACE_HANDLE>
+#pragma instantiate ACE_Unbounded_Set<ACE_HANDLE>
+#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_HANDLE>
+
#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
#pragma instantiate ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
#pragma instantiate ACE_NOOP_Creation_Strategy<Svc_Handler>
@@ -670,6 +692,9 @@ template class ACE_Recyclable_Handler_Caching_Utility<ADDR, CACHED_HANDLER, HASH
#pragma instantiate ACE_Recyclable_Handler_Cleanup_Strategy<ADDR, CACHED_HANDLER, HASH_MAP>
#pragma instantiate ACE_Recyclable_Handler_Caching_Utility<ADDR, CACHED_HANDLER, HASH_MAP, HASH_MAP_ITERATOR, ATTRIBUTES>
+#pragma instantiate ACE_Reverse_Lock<ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Guard<ACE_Reverse_Lock<ACE_SYNCH_NULL_MUTEX> >
+
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
#endif /* CACHED_CONNECT_TEST */