summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-04-28 22:14:37 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-04-28 22:14:37 +0000
commit1e95abdb708fe366d207e7c4c1e51f3e6423358c (patch)
tree664ce3e0fe1208cab6f6914f2328a6bbff7b58c0
parentf205be03c4a67ee5354704abf1acf349fe605079 (diff)
downloadATCD-1e95abdb708fe366d207e7c4c1e51f3e6423358c.tar.gz
ChangeLogTag:Thu Apr 28 15:01:38 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog33
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp10
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp15
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp10
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp11
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp10
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Full_Profile/server.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Full_Profile/server.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp5
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp15
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast/ftp.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast/ftp.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp17
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp15
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp16
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp14
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp15
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp7
24 files changed, 168 insertions, 75 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 1b9f71a9db7..dccc094b75f 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,36 @@
+Thu Apr 28 15:01:38 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp:
+ * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp:
+
+ Removed unused singleton.
+
+ * orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp:
+ * orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp:
+ * orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp:
+ * orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp:
+ * orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp:
+ * orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Full_Profile/ftp.h:
+ * orbsvcs/tests/AVStreams/Full_Profile/server.cpp:
+ * orbsvcs/tests/AVStreams/Full_Profile/server.h:
+ * orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp:
+ * orbsvcs/tests/AVStreams/Multicast/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Multicast/ftp.h:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.h:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.h:
+ * orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp:
+ * orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp:
+ * orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp:
+ * orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp:
+ * orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp:
+
+ Converted remaining ACE_Singletons to ACE_Unmanaged_Singleton.
+ See the ChangeLog entry "Wed Apr 27 23:36:45 2005 Ossama Othman
+ <ossama@dre.vanderbilt.edu>" for details.
+
Thu Apr 28 00:09:00 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
* tao/TypeCode.cpp (~TypeCode):
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp
index a76993a7587..b2e7d080407 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp
@@ -4,7 +4,7 @@
#include "ace/Get_Opt.h"
#include "orbsvcs/AV/Protocol_Factory.h"
-typedef ACE_Singleton<Distributer, ACE_Null_Mutex> DISTRIBUTER;
+typedef ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex> DISTRIBUTER;
int
Distributer_Sender_StreamEndPoint::get_callback (const char *,
@@ -298,21 +298,23 @@ main (int argc,
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+ DISTRIBUTER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Distributer,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Distributer,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Distributer,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Distributer,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Distributer, ACE_Null_Mutex> *ACE_Singleton<Distributer, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp
index 96876f4ee06..480e9d7200f 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp
@@ -5,9 +5,13 @@
#include "ace/Get_Opt.h"
#include "ace/High_Res_Timer.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
+
int
Sender_StreamEndPoint::get_callback (const char *,
TAO_AV_Callback *&callback)
@@ -344,17 +348,20 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ SENDER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Sender,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Sender,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Sender, ACE_Null_Mutex> *ACE_Singleton<Sender, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp
index 305fa236cf2..d5e95df6558 100644
--- a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/receiver.cpp
@@ -10,7 +10,7 @@ static FILE *output_file = 0;
static const char *output_file_name = "output";
// File name of the file into which received data is written.
-typedef ACE_Singleton<Receiver,ACE_Null_Mutex> RECEIVER;
+typedef ACE_Unmanaged_Singleton<Receiver,ACE_Null_Mutex> RECEIVER;
//Create a singleton instance of the receiver.
int
@@ -349,17 +349,19 @@ main (int argc,
ACE_OS::fclose (output_file);
+ RECEIVER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Receiver,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Receiver,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Receiver,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Receiver,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Receiver, ACE_Null_Mutex> *ACE_Singleton<Receiver, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Receiver, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Receiver, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp
index b349a8bc5d5..7cea0017648 100644
--- a/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Bidirectional_Flows/sender.cpp
@@ -5,7 +5,7 @@
#include "ace/Get_Opt.h"
#include "ace/High_Res_Timer.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
static FILE *output_file = 0;
@@ -506,17 +506,20 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ SENDER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Sender,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Sender,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Sender, ACE_Null_Mutex> *ACE_Singleton<Sender, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp b/TAO/orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp
index 920ae63318f..22daafbeedb 100644
--- a/TAO/orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp
@@ -8,7 +8,7 @@
#include "tao/Strategies/advanced_resource.h"
-typedef ACE_Singleton<Distributer, ACE_Null_Mutex> DISTRIBUTER;
+typedef ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex> DISTRIBUTER;
// constructor.
Signal_Handler::Signal_Handler (void)
@@ -499,21 +499,23 @@ main (int argc,
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+ DISTRIBUTER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Distributer,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Distributer,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Distributer,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Distributer,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Distributer, ACE_Null_Mutex> *ACE_Singleton<Distributer, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp b/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp
index 678ac494302..658f883fae2 100644
--- a/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp
@@ -389,17 +389,19 @@ main (int argc,
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+ CLIENT::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Client,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Client,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Client,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Client,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Client, ACE_Null_Mutex> *ACE_Singleton<Client, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Client, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Client, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.h b/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.h
index 132c98f1af8..bb0cfdd19c0 100644
--- a/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.h
+++ b/TAO/orbsvcs/tests/AVStreams/Full_Profile/ftp.h
@@ -84,6 +84,6 @@ private:
AVStreams::FlowProducer_var fep_a_obj_;
};
-typedef ACE_Singleton<Client,ACE_Null_Mutex> CLIENT;
+typedef ACE_Unmanaged_Singleton<Client,ACE_Null_Mutex> CLIENT;
#endif /* TAO_AV_FTP_H */
diff --git a/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.cpp b/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.cpp
index a0570b874a2..78863adf905 100644
--- a/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.cpp
@@ -260,17 +260,19 @@ main (int argc,
if (result < 0)
ACE_ERROR_RETURN ((LM_ERROR,"SERVER::run failed\n"),1);
+ FTP_SERVER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return result;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Server,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Server,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_B <TAO_StreamEndPoint_B,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <TAO_StreamEndPoint_B,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-s#pragma instantiate ACE_Singleton <Server,ACE_Null_Mutex>
+s#pragma instantiate ACE_Unmanaged_Singleton <Server,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B <TAO_StreamEndPoint_B,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <TAO_StreamEndPoint_B,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Server, ACE_Null_Mutex> *ACE_Singleton<Server, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Server, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Server, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.h b/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.h
index 0117cc448a6..f88e8ee7c20 100644
--- a/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.h
+++ b/TAO/orbsvcs/tests/AVStreams/Full_Profile/server.h
@@ -63,4 +63,4 @@ protected:
AVStreams::FlowConsumer_var fep_b_obj_;
};
-typedef ACE_Singleton<Server,ACE_Null_Mutex> FTP_SERVER;
+typedef ACE_Unmanaged_Singleton<Server,ACE_Null_Mutex> FTP_SERVER;
diff --git a/TAO/orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp
index c133ea05fe8..c936ad5116f 100644
--- a/TAO/orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp
@@ -3,9 +3,6 @@
#include "receiver.h"
#include "ace/Get_Opt.h"
-typedef ACE_Singleton<Receiver, ACE_Null_Mutex> RECEIVER;
-// Create a singleton instance of the Sender.
-
static FILE *output_file = 0;
// File handle of the file into which received data is written.
@@ -338,11 +335,9 @@ main (int argc,
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Receiver,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Receiver,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp
index 81d539e236a..25a28701ff3 100644
--- a/TAO/orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp
@@ -5,9 +5,13 @@
#include "ace/Get_Opt.h"
#include "ace/High_Res_Timer.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
+
// The time that should lapse between two consecutive frames sent.
ACE_Time_Value inter_frame_time;
@@ -433,17 +437,20 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ SENDER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Sender,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Sender,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Sender, ACE_Null_Mutex> *ACE_Singleton<Sender, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.cpp b/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.cpp
index c890d602c08..23d83aca4fd 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.cpp
@@ -384,17 +384,19 @@ main (int argc,
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+ CLIENT::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Client,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Client,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Client,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Client,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Client, ACE_Null_Mutex> *ACE_Singleton<Client, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Client, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Client, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.h b/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.h
index ad0cf76d51d..9cd6cc7e47f 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.h
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast/ftp.h
@@ -96,6 +96,6 @@ private:
int use_sfp_;
};
-typedef ACE_Singleton<Client,ACE_Null_Mutex> CLIENT;
+typedef ACE_Unmanaged_Singleton<Client,ACE_Null_Mutex> CLIENT;
#endif /* TAO_AV_FTP_H */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp
index 43bc3abcc7d..d938a9b2092 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp
@@ -421,19 +421,21 @@ main (int argc,
if (result < 0)
ACE_ERROR_RETURN ((LM_ERROR,"client::run failed\n"),1);
+ CLIENT::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return result;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Client,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Client,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<TAO_StreamEndPoint_A,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_FDev<FTP_Client_Producer, TAO_FlowConsumer>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Client,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Client,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<FTP_Client_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_FDev<FTP_Client_Producer, TAO_FlowConsumer>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Client, ACE_Null_Mutex> *ACE_Singleton<Client, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Client, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Client, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.h b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.h
index 08d558dc82b..acb8081d72d 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.h
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.h
@@ -83,6 +83,6 @@ private:
int use_sfp_;
};
-typedef ACE_Singleton<Client,ACE_Null_Mutex> CLIENT;
+typedef ACE_Unmanaged_Singleton<Client,ACE_Null_Mutex> CLIENT;
#endif /* TAO_AV_FTP_H */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp
index 0e4c94adb13..cd08d8582c4 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp
@@ -281,20 +281,22 @@ main (int argc,
if (result < 0)
ACE_ERROR_RETURN ((LM_ERROR,"FTP_SERVER::run failed\n"),1);
+ FTP_SERVER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return result;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Server,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Server,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<TAO_StreamEndPoint_B, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<TAO_StreamEndPoint_B, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_FDev<TAO_FlowProducer, FTP_Server_FlowEndPoint>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Server,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Server,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<TAO_StreamEndPoint_B, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<TAO_StreamEndPoint_B, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_FDev<TAO_FlowProducer, FTP_Server_FlowEndPoint>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Server, ACE_Null_Mutex> *ACE_Singleton<Server, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Server, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Server, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.h b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.h
index b292ff910e5..bdd2957c2ec 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.h
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.h
@@ -67,4 +67,4 @@ protected:
char *protocol_;
};
-typedef ACE_Singleton<Server,ACE_Null_Mutex> FTP_SERVER;
+typedef ACE_Unmanaged_Singleton<Server,ACE_Null_Mutex> FTP_SERVER;
diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp
index 2995e25e9b5..b59e7e8b871 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/receiver.cpp
@@ -6,8 +6,13 @@
int endstream = 0;
-typedef ACE_Singleton<Receiver,ACE_Null_Mutex> RECEIVER;
-//Create a singleton instance of the receiver.
+// Create a singleton instance of the Sender.
+
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+typedef ACE_Unmanaged_Singleton<Receiver,ACE_Null_Mutex> RECEIVER;
+
int
Receiver_StreamEndPoint::get_callback (const char *flow_name,
@@ -291,17 +296,19 @@ main (int argc,
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+ RECEIVER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Receiver,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Receiver,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Receiver,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Receiver,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Receiver, ACE_Null_Mutex> *ACE_Singleton<Receiver, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Receiver, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Receiver, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp
index 732b2e62fb4..359b843199e 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Multiple_Flows/sender.cpp
@@ -5,9 +5,13 @@
#include "ace/Get_Opt.h"
#include "ace/High_Res_Timer.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
+
int
Sender_StreamEndPoint::get_callback (const char *,
@@ -423,23 +427,26 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ SENDER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Sender,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class ACE_Node <TAO_AV_Protocol_Object*>;
template class ACE_Unbounded_Set <TAO_AV_Protocol_Object*>;
template class ACE_Unbounded_Set_Iterator <TAO_AV_Protocol_Object*>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Sender,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate ACE_Node <TAO_AV_Protocol_Object*>
#pragma instantiate ACE_Unbounded_Set <TAO_AV_Protocol_Object*>
#pragma instantiate ACE_Unbounded_Set_Iterator <TAO_AV_Protocol_Object*>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Sender, ACE_Null_Mutex> *ACE_Singleton<Sender, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp
index 06e7ec131c1..57a8178a145 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable_Flow_Protocol/sender.cpp
@@ -5,9 +5,14 @@
#include "ace/Get_Opt.h"
#include "ace/High_Res_Timer.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
+
+
int
Sender_StreamEndPoint::get_callback (const char *,
TAO_AV_Callback *&callback)
@@ -401,17 +406,20 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ SENDER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Sender,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Sender,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Sender, ACE_Null_Mutex> *ACE_Singleton<Sender, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp b/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp
index ce2552d5887..e52a83a03b6 100644
--- a/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/distributer.cpp
@@ -4,7 +4,11 @@
#include "ace/Get_Opt.h"
#include "orbsvcs/AV/Protocol_Factory.h"
-typedef ACE_Singleton<Distributer, ACE_Null_Mutex> DISTRIBUTER;
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+
+typedef ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex> DISTRIBUTER;
int
Distributer_Sender_StreamEndPoint::get_callback (const char *,
@@ -363,21 +367,23 @@ main (int argc,
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+ DISTRIBUTER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Distributer,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Distributer,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Distributer,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Distributer,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <Distributer_Sender_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <Distributer_Receiver_StreamEndPoint, TAO_VDev, AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Distributer, ACE_Null_Mutex> *ACE_Singleton<Distributer, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Distributer, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp
index 947b35715d5..ff9a8cc915c 100644
--- a/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/sender.cpp
@@ -5,9 +5,13 @@
#include "ace/Get_Opt.h"
#include "ace/High_Res_Timer.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
+// An Unmanaged_Singleton is used to avoid static object destruction
+// order related problems since the underlying singleton object
+// contains references to static TypeCodes.
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
+
int
Sender_StreamEndPoint::get_callback (const char *,
TAO_AV_Callback *&callback)
@@ -378,17 +382,20 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ SENDER::close (); // Explicitly finalize the Unmanaged_Singleton.
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Sender,ACE_Null_Mutex>;
+template class ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Sender,ACE_Null_Mutex>
+#pragma instantiate ACE_Unmanaged_Singleton <Sender,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_A<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Sender_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<Sender, ACE_Null_Mutex> *ACE_Singleton<Sender, ACE_Null_Mutex>::singleton_;
+template ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> *ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex>::singleton_;
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp
index 51f203aa0b2..1425b8c59a6 100644
--- a/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/receiver.cpp
@@ -3,9 +3,6 @@
#include "receiver.h"
#include "ace/Get_Opt.h"
-typedef ACE_Singleton<Receiver, ACE_Null_Mutex> RECEIVER;
-// Create a singleton instance of the Sender.
-
static FILE *output_file = 0;
// File handle of the file into which received data is written.
@@ -259,15 +256,15 @@ main (int argc,
ACE_OS::fclose (output_file);
+
+
return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton <Receiver,ACE_Null_Mutex>;
template class TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton <Receiver,ACE_Null_Mutex>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Receiver_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */