summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/AVStreams
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-04-28 06:46:48 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-04-28 06:46:48 +0000
commitb509da0d5e38c20452e7a92fe738a7ed9598b289 (patch)
tree954bd82c4c665dfa9c5b6fead8a4151402920d62 /TAO/orbsvcs/tests/AVStreams
parent859cb23cbbaa621d7b5036b83bee91e1faa337c1 (diff)
downloadATCD-b509da0d5e38c20452e7a92fe738a7ed9598b289.tar.gz
ChangeLogTag:Wed Apr 27 23:36:45 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/orbsvcs/tests/AVStreams')
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Component_Switching/sender.cpp17
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast/server.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Multicast/server.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp9
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage/sender.cpp17
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.cpp11
7 files changed, 45 insertions, 21 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/Component_Switching/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Component_Switching/sender.cpp
index 7f0336cc487..f6b184d02f6 100644
--- a/TAO/orbsvcs/tests/AVStreams/Component_Switching/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Component_Switching/sender.cpp
@@ -8,8 +8,12 @@
#include "tao/Strategies/advanced_resource.h"
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
-/// Create a singleton instance of the 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 g_shutdown = 0;
/// Flag set when a signal is raised.
@@ -507,17 +511,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/server.cpp b/TAO/orbsvcs/tests/AVStreams/Multicast/server.cpp
index 15c8d49408e..16e94ae9295 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast/server.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast/server.cpp
@@ -232,17 +232,19 @@ 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 <FTP_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
template class TAO_AV_Endpoint_Reactive_Strategy <FTP_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>;
#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 <FTP_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>
#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy <FTP_Server_StreamEndPoint,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/Multicast/server.h b/TAO/orbsvcs/tests/AVStreams/Multicast/server.h
index 1aec3d351c7..a92714819df 100644
--- a/TAO/orbsvcs/tests/AVStreams/Multicast/server.h
+++ b/TAO/orbsvcs/tests/AVStreams/Multicast/server.h
@@ -49,4 +49,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/Pluggable/ftp.cpp b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp
index 55bfa9e1048..93c65d38ed2 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.cpp
@@ -479,21 +479,24 @@ main (int argc,
}
ACE_ENDTRY;
ACE_CHECK_RETURN (-1);
+
+ CLIENT::close ();
+
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/Pluggable/ftp.h b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h
index 50e7a20e39b..4f405b5a9da 100644
--- a/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h
+++ b/TAO/orbsvcs/tests/AVStreams/Pluggable/ftp.h
@@ -167,7 +167,7 @@ private:
};
-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/Simple_Two_Stage/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage/sender.cpp
index f37db66cb27..da831b31ff3 100644
--- a/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage/sender.cpp
@@ -5,9 +5,15 @@
#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)
@@ -488,17 +494,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/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.cpp
index cbb57850a44..c683791eeb8 100644
--- a/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.cpp
@@ -7,7 +7,7 @@
static u_long peak_bandwidth = 18400;
-typedef ACE_Singleton<Sender, ACE_Null_Mutex> SENDER;
+typedef ACE_Unmanaged_Singleton<Sender, ACE_Null_Mutex> SENDER;
// Create a singleton instance of the Sender.
// The time that should lapse between two consecutive frames sent.
@@ -565,17 +565,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 */