diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-01-26 01:02:54 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-01-26 01:02:54 +0000 |
commit | 41c0bef95632e511b8090eeec238eb58da5c0e58 (patch) | |
tree | e8932bba3c6b11a3cdac64553f35d6e15fb5aaf8 /TAO | |
parent | 2f0af2a99c78413480155927a4032e6b995b1d9f (diff) | |
download | ATCD-41c0bef95632e511b8090eeec238eb58da5c0e58.tar.gz |
ChangeLogTag:Tue Jan 25 19:01:33 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 194 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp | 12 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp | 11 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp | 2 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp | 1 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/Basic/MT_Disconnect.cpp | 2 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/Basic/Negation.cpp | 3 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/Basic/Observer.cpp | 21 | ||||
-rwxr-xr-x | TAO/orbsvcs/tests/Event/Basic/run_test.pl | 6 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/lib/Driver.cpp | 21 |
10 files changed, 171 insertions, 102 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index a272249454e..a4d73e94402 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,133 +1,157 @@ +Tue Jan 25 19:01:33 2000 Carlos O'Ryan <coryan@cs.wustl.edu> + + * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: + Fixed shutdown problem for the Timer Module. + + * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: + Fixed memory leak, if the supplier disconnects while some + consumers are still attached it has to shutdown() its filter to + clear the extra reference counts. + + * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp: + * orbsvcs/tests/Event/Basic/MT_Disconnect.cpp: + * orbsvcs/tests/Event/Basic/Negation.cpp: + * orbsvcs/tests/Event/Basic/Observer.cpp: + * orbsvcs/tests/Event/lib/Driver.cpp: + Fixed several memory leaks in the tests, to verify that the + service is ok. + + * orbsvcs/tests/Event/Basic/run_test.pl: + Increased allowed execution time for one of the tests. + + * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp: + Cosmetic fixes + Tue Jan 25 18:51:42 2000 Jeff Parsons <parsons@cs.wustl.edu> - * tests/IDL_Test/interface.idl: - * tests/IDL_Test/generic_object.idl: - Added tests for new forward declared interface rule - mentioned below and for generic objects used as - parameters in a request. + * tests/IDL_Test/interface.idl: + * tests/IDL_Test/generic_object.idl: + Added tests for new forward declared interface rule + mentioned below and for generic objects used as + parameters in a request. Tue Jan 25 18:19:49 2000 Jeff Parsons <parsons@cs.wustl.edu> - * TAO_IDL/tao_idl.cpp: - * TAO_IDL/ast/ast_interface_fwd.cpp: - * TAO_IDL/be/be_visitor_scope.cpp: - * TAO_IDL/be/be_visitor_factory.cpp: - * TAO_IDL/be/be_visitor_root/root.cpp: - * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp: - * TAO_IDL/be/be_visitor_interface_fwd.cpp: - * TAO_IDL/be_include/be_visitor_interface_fwd.h: - Modified files - - * TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ch.h: - * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ch.cpp: - New files. - - Changes to support code generation and C++ compilation - for IDL files containing a forward declared interface - that is not defined in the same file. The spec had - required that the definition be present, but the rule - was recently relaxed in CORBA 2.3.1 (99-10-07). If - the full definition is not in some generated .cpp file - that is included in the build, the C++ compiler will - produce a link error. This closes Bugzilla entry #401. + * TAO_IDL/tao_idl.cpp: + * TAO_IDL/ast/ast_interface_fwd.cpp: + * TAO_IDL/be/be_visitor_scope.cpp: + * TAO_IDL/be/be_visitor_factory.cpp: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp: + * TAO_IDL/be/be_visitor_interface_fwd.cpp: + * TAO_IDL/be_include/be_visitor_interface_fwd.h: + Modified files + + * TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ch.h: + * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ch.cpp: + New files. + + Changes to support code generation and C++ compilation + for IDL files containing a forward declared interface + that is not defined in the same file. The spec had + required that the definition be present, but the rule + was recently relaxed in CORBA 2.3.1 (99-10-07). If + the full definition is not in some generated .cpp file + that is included in the build, the C++ compiler will + produce a link error. This closes Bugzilla entry #401. Tue Jan 25 14:23:04 2000 Ossama Othman <ossama@uci.edu> - * docs/pluggable_protocols/index.html: + * docs/pluggable_protocols/index.html: - Updated/corrected some URLs. + Updated/corrected some URLs. Tue Jan 25 14:05:42 2000 Irfan Pyarali <irfan@cs.wustl.edu> - * tao/Leader_Follower.h (TAO_LF_Client_Thread_Helper and - TAO_LF_Leader_Thread_Helper): Auto-pointer like classes that - help manage the leader follower object. - TAO_LF_Client_Thread_Helper helps with set_client_thread and - reset_client_thread while TAO_LF_Leader_Thread_Helper helps with - set_leader_thread and reset_leader_thread. + * tao/Leader_Follower.h (TAO_LF_Client_Thread_Helper and + TAO_LF_Leader_Thread_Helper): Auto-pointer like classes that + help manage the leader follower object. + TAO_LF_Client_Thread_Helper helps with set_client_thread and + reset_client_thread while TAO_LF_Leader_Thread_Helper helps with + set_leader_thread and reset_leader_thread. - * tao/Wait_Strategy.cpp (TAO_Muxed_Wait_On_Leader_Follower::wait - and TAO_Exclusive_Wait_On_Leader_Follower::wait): + * tao/Wait_Strategy.cpp (TAO_Muxed_Wait_On_Leader_Follower::wait + and TAO_Exclusive_Wait_On_Leader_Follower::wait): - We now use guards to make sure that the leader follower object - has consistent information even when errors occur. Previously, - there were many return and exceptional conditions where the - leader follower object was left in an inconsistent state. + We now use guards to make sure that the leader follower object + has consistent information even when errors occur. Previously, + there were many return and exceptional conditions where the + leader follower object was left in an inconsistent state. Tue Jan 25 12:17:35 2000 Jeff Parsons <parsons@cs.wustl.edu> - * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp: - Missed some cases in the previous checkin of this file. + * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp: + Missed some cases in the previous checkin of this file. Tue Jan 25 10:38:31 2000 Pradeep Gore <pradeep@flamenco.cs.wustl.edu> - * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp: - * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp: - Fixed "unreachable statement" warnings on kai. + * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp: + * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp: + Fixed "unreachable statement" warnings on kai. Tue Jan 25 02:07:58 2000 Nanbor Wang <nanbor@cs.wustl.edu> - * examples/Simple/time/README: Added description on getting - JACE.Misc.GetOpt. + * examples/Simple/time/README: Added description on getting + JACE.Misc.GetOpt. - * examples/Simple/time/Time_Client.java: Modified the Java client - so that it, like C++ client, can use command line args to - determine ways of acquiring Time objref. This test now uses - JACE.Misc.GetOpt (a complete JACE installation is not required.) + * examples/Simple/time/Time_Client.java: Modified the Java client + so that it, like C++ client, can use command line args to + determine ways of acquiring Time objref. This test now uses + JACE.Misc.GetOpt (a complete JACE installation is not required.) Mon Jan 24 18:47:22 2000 Ossama Othman <ossama@uci.edu> - * docs/Options.html: + * docs/Options.html: - Clarified what UID and GID in the documentation for the - -ORBSetUID and -ORBSetGID options. + Clarified what UID and GID in the documentation for the + -ORBSetUID and -ORBSetGID options. Mon Jan 24 13:17:31 2000 Jeff Parsons <parsons@cs.wustl.edu> - * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp: - Russell L. Carter <rcarter@pinyon.org> reported a bug when - the return type of an operation is CORBA::Object. It turns - out that CORBA::TypeCode, interface, forward declared interface, - valuetype, and forward declared valuetype needed the same fix. + * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp: + Russell L. Carter <rcarter@pinyon.org> reported a bug when + the return type of an operation is CORBA::Object. It turns + out that CORBA::TypeCode, interface, forward declared interface, + valuetype, and forward declared valuetype needed the same fix. Sun Jan 23 18:15:32 2000 Krishnakumar Elakkara Pathayapura <krish@polka.cs.wustl.edu> - * docs/releasenotes/index.html: - Updated the release notes for the Logging Service + * docs/releasenotes/index.html: + Updated the release notes for the Logging Service Sun Jan 23 14:09:30 2000 Ossama Othman <ossama@uci.edu> - * docs/Options.html: + * docs/Options.html: - Added descriptions of the newly added "-ORBSetUID" and - "-ORBSetGID" ORB options. + Added descriptions of the newly added "-ORBSetUID" and + "-ORBSetGID" ORB options. - * tao/ORB_Core.cpp (init): + * tao/ORB_Core.cpp (init): - Added two new ORB options "-ORBSetUID" and "-ORBSetGID." These - options can be used to the set the effective user and group IDs, - respectively. This is useful when starting the ORB under the - super-user but it is desired to run the ORB under different user - and/or group IDs. A typical use would be to start a TAO daemon, - under the 'nobody' user via System V style initialization - scripts. + Added two new ORB options "-ORBSetUID" and "-ORBSetGID." These + options can be used to the set the effective user and group IDs, + respectively. This is useful when starting the ORB under the + super-user but it is desired to run the ORB under different user + and/or group IDs. A typical use would be to start a TAO daemon, + under the 'nobody' user via System V style initialization + scripts. - Note that these options are only supported if the platform - implements the setuid() and setgid() POSIX system calls. + Note that these options are only supported if the platform + implements the setuid() and setgid() POSIX system calls. - In general, it is a good idea to only run the ORB with - super-user privileges when necessary, e.g. when performing - benchmarking experiments, and when access to the real-time - scheduling class is needed. If the ORB must be started via the - super-user account, and the real-time scheduling class won't be - used, than the ORB's effective user ID should at least be - changed to an unprivileged one, such as 'nobody'. + In general, it is a good idea to only run the ORB with + super-user privileges when necessary, e.g. when performing + benchmarking experiments, and when access to the real-time + scheduling class is needed. If the ORB must be started via the + super-user account, and the real-time scheduling class won't be + used, than the ORB's effective user ID should at least be + changed to an unprivileged one, such as 'nobody'. Sat Jan 22 21:08:07 2000 Nanbor Wang <nanbor@cs.wustl.edu> - * orbsvcs/orbsvcs/orbsvcs.dsp: - * orbsvcs/orbsvcs/orbsvcs_static.dsp: Renamed - EC_SupplierFiltering.* to EC_Supplier_Filter.*. + * orbsvcs/orbsvcs/orbsvcs.dsp: + * orbsvcs/orbsvcs/orbsvcs_static.dsp: Renamed + EC_SupplierFiltering.* to EC_Supplier_Filter.*. Sat Jan 22 18:25:51 2000 Carlos O'Ryan <coryan@uci.edu> diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp index ebbddf71517..ed4a03a5b07 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp @@ -74,16 +74,6 @@ TAO_EC_Event_Channel (const TAO_EC_Event_Channel_Attributes& attr, TAO_EC_Event_Channel::~TAO_EC_Event_Channel (void) { - if (this->dispatching_ != 0) - this->dispatching_->shutdown (); - if (this->timeout_generator_ != 0) - this->timeout_generator_->shutdown (); - - if (this->supplier_control_ != 0) - this->supplier_control_->shutdown (); - if (this->consumer_control_ != 0) - this->consumer_control_->shutdown (); - this->factory_->destroy_dispatching (this->dispatching_); this->dispatching_ = 0; this->factory_->destroy_filter_builder (this->filter_builder_); @@ -125,6 +115,8 @@ TAO_EC_Event_Channel::shutdown (CORBA::Environment& ACE_TRY_ENV) { this->dispatching_->shutdown (); this->timeout_generator_->shutdown (); + this->supplier_control_->shutdown (); + this->consumer_control_->shutdown (); PortableServer::POA_var consumer_poa = this->consumer_admin_->_default_POA (ACE_TRY_ENV); diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp index be913f2ad31..3fbd578021f 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp @@ -53,6 +53,17 @@ TAO_EC_Per_Supplier_Filter::unbind (TAO_EC_ProxyPushConsumer* consumer) return; this->consumer_ = 0; + + ACE_TRY_NEW_ENV + { + this->shutdown (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + // @@ Ignore exceptions + } + ACE_ENDTRY; } void diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp index 55e24686134..7aaf611aff4 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp @@ -47,7 +47,7 @@ TAO_EC_ProxyPushSupplier_Set::disconnected_i ( CORBA::Environment &) { if (this->all_suppliers_.remove (supplier) != 0) - return; + return;// @@ rasise something? supplier->_decr_refcnt (); } diff --git a/TAO/orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp b/TAO/orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp index 29e4b11d232..66a18de1b3a 100644 --- a/TAO/orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp +++ b/TAO/orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp @@ -269,6 +269,7 @@ Task::svc () ACE_TRY_NEW_ENV { this->run (ACE_TRY_ENV); + ACE_TRY_CHECK; } ACE_CATCHANY { diff --git a/TAO/orbsvcs/tests/Event/Basic/MT_Disconnect.cpp b/TAO/orbsvcs/tests/Event/Basic/MT_Disconnect.cpp index 49fbbbc719c..23b2604ebce 100644 --- a/TAO/orbsvcs/tests/Event/Basic/MT_Disconnect.cpp +++ b/TAO/orbsvcs/tests/Event/Basic/MT_Disconnect.cpp @@ -98,7 +98,7 @@ run_test (PortableServer::POA_ptr poa, Task task (event_channel.in (), use_callbacks); - if (task.activate (THR_BOUND|THR_NEW_LWP, 10) != 0) + if (task.activate (THR_BOUND|THR_NEW_LWP, 1) != 0) { ACE_ERROR ((LM_ERROR, "Cannot activate the tasks\n")); } diff --git a/TAO/orbsvcs/tests/Event/Basic/Negation.cpp b/TAO/orbsvcs/tests/Event/Basic/Negation.cpp index f6ad83a0035..0cad880b39a 100644 --- a/TAO/orbsvcs/tests/Event/Basic/Negation.cpp +++ b/TAO/orbsvcs/tests/Event/Basic/Negation.cpp @@ -172,6 +172,9 @@ main (int argc, char* argv[]) negation_consumer.dump_results (200, 5); regular_consumer.dump_results (100, 5); + + orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; } ACE_CATCHANY { diff --git a/TAO/orbsvcs/tests/Event/Basic/Observer.cpp b/TAO/orbsvcs/tests/Event/Basic/Observer.cpp index 413e0cd260f..036ea4bf3b5 100644 --- a/TAO/orbsvcs/tests/Event/Basic/Observer.cpp +++ b/TAO/orbsvcs/tests/Event/Basic/Observer.cpp @@ -120,10 +120,31 @@ EC_Master::run (int argc, char* argv[]) } } + { + for (int i = 0; i != this->n_channels_; ++i) + { + this->channels_[i]->disconnect_clients (ACE_TRY_ENV); + ACE_TRY_CHECK; + this->channels_[i]->shutdown_clients (ACE_TRY_ENV); + ACE_TRY_CHECK; + this->channels_[i]->destroy_ec (ACE_TRY_ENV); + ACE_TRY_CHECK; + this->channels_[i]->deactivate_ec (ACE_TRY_ENV); + ACE_TRY_CHECK; + this->channels_[i]->cleanup_tasks (); + this->channels_[i]->cleanup_suppliers (); + this->channels_[i]->cleanup_consumers (); + this->channels_[i]->cleanup_ec (); + } + } + this->root_poa_->destroy (1, 1, ACE_TRY_ENV); ACE_TRY_CHECK; + + this->orb_->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; } ACE_CATCHANY { diff --git a/TAO/orbsvcs/tests/Event/Basic/run_test.pl b/TAO/orbsvcs/tests/Event/Basic/run_test.pl index 11b67b021c6..1f05451f347 100755 --- a/TAO/orbsvcs/tests/Event/Basic/run_test.pl +++ b/TAO/orbsvcs/tests/Event/Basic/run_test.pl @@ -92,8 +92,8 @@ if ($T->TimedWait (60) == -1) { print STDERR "\n\nMT Disconnects test\n"; $T = Process::Create ($prefix . "MT_Disconnect".$EXE_EXT, - " -ORBSvcConf mt.svc.conf"); -if ($T->TimedWait (120) == -1) { + " -ORBSvcConf mt.svc.conf"); +if ($T->TimedWait (240) == -1) { print STDERR "ERROR: Test timedout\n"; $status = 1; $T->Kill (); $T->TimedWait (1); @@ -101,7 +101,7 @@ if ($T->TimedWait (120) == -1) { print STDERR "\n\nAtomic Reconnection test\n"; $T = Process::Create ($prefix . "Atomic_Reconnect".$EXE_EXT, - " -ORBSvcConf mt.svc.conf"); + " -ORBSvcConf mt.svc.conf"); if ($T->TimedWait (120) == -1) { print STDERR "ERROR: Test timedout\n"; $status = 1; diff --git a/TAO/orbsvcs/tests/Event/lib/Driver.cpp b/TAO/orbsvcs/tests/Event/lib/Driver.cpp index 5f108cf65dc..10bf1d2a923 100644 --- a/TAO/orbsvcs/tests/Event/lib/Driver.cpp +++ b/TAO/orbsvcs/tests/Event/lib/Driver.cpp @@ -159,6 +159,14 @@ EC_Driver::run_cleanup (CORBA::Environment &ACE_TRY_ENV) this->cleanup_suppliers (); this->cleanup_consumers (); this->cleanup_ec (); + + this->root_poa_->destroy (0, 0, ACE_TRY_ENV); + ACE_CHECK; + this->root_poa_ = PortableServer::POA::_nil (); + + this->orb_->destroy (ACE_TRY_ENV); + ACE_CHECK; + this->orb_ = CORBA::ORB::_nil (); } void @@ -657,6 +665,9 @@ EC_Driver::execute_test (CORBA::Environment &ACE_TRY_ENV) int EC_Driver::allocate_tasks (void) { + if (this->tasks_ != 0) + return 0; + ACE_NEW_RETURN (this->tasks_, ACE_Task_Base*[this->n_suppliers_], -1); @@ -696,8 +707,6 @@ EC_Driver::activate_tasks (CORBA::Environment &) for (int i = 0; i < this->n_suppliers_; ++i) { - this->tasks_[i] = this->allocate_task (i); - if (this->tasks_[i]->activate (this->thr_create_flags_, 1, 0, priority) == -1) { @@ -712,6 +721,8 @@ EC_Driver::activate_tasks (CORBA::Environment &) void EC_Driver::disconnect_suppliers (CORBA::Environment &ACE_TRY_ENV) { + if (this->suppliers_ == 0) + return; for (int i = 0; i < this->n_suppliers_; ++i) { this->suppliers_[i]->disconnect (ACE_TRY_ENV); @@ -724,6 +735,8 @@ EC_Driver::disconnect_suppliers (CORBA::Environment &ACE_TRY_ENV) void EC_Driver::disconnect_consumers (CORBA::Environment &ACE_TRY_ENV) { + if (this->consumers_ == 0) + return; for (int i = 0; i < this->n_consumers_; ++i) { this->consumers_[i]->disconnect (ACE_TRY_ENV); @@ -736,6 +749,8 @@ EC_Driver::disconnect_consumers (CORBA::Environment &ACE_TRY_ENV) void EC_Driver::shutdown_suppliers (CORBA::Environment &ACE_TRY_ENV) { + if (this->suppliers_ == 0) + return; for (int i = 0; i < this->n_suppliers_; ++i) { this->suppliers_[i]->shutdown (ACE_TRY_ENV); @@ -748,6 +763,8 @@ EC_Driver::shutdown_suppliers (CORBA::Environment &ACE_TRY_ENV) void EC_Driver::shutdown_consumers (CORBA::Environment &ACE_TRY_ENV) { + if (this->consumers_ == 0) + return; for (int i = 0; i < this->n_consumers_; ++i) { this->consumers_[i]->shutdown (ACE_TRY_ENV); |