summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1997-04-10 03:35:52 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1997-04-10 03:35:52 +0000
commitf1f055e82613b295c3ae8ee87ffb2304d49244c3 (patch)
tree06d1532c9b151f46e93db121adb693a2d2b409f5
parent56c93e046d5fa5ed00fb0d2e051eadfb4ae2524e (diff)
downloadATCD-f1f055e82613b295c3ae8ee87ffb2304d49244c3.tar.gz
*** empty log message ***
-rw-r--r--ChangeLog-97a4
-rw-r--r--apps/Gateway/Gateway/Gateway.cpp8
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a
index f8e6b91a351..22a0b1bb646 100644
--- a/ChangeLog-97a
+++ b/ChangeLog-97a
@@ -1,5 +1,9 @@
Wed Apr 9 21:11:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
+ * apps/Gateway/Gateway/Gateway.cpp (handle_signal): Evil demons
+ added bugs to my code that were causing segfaults when signals
+ shutdown the gateway. This is now fixed.
+
* apps/Gateway/Gateway/Proxy_Handler.h: Changed ACE_Event_Channel
& to ACE_Event_Channel * to keep the compiler happy.
diff --git a/apps/Gateway/Gateway/Gateway.cpp b/apps/Gateway/Gateway/Gateway.cpp
index 8d403707bdb..872366eee93 100644
--- a/apps/Gateway/Gateway/Gateway.cpp
+++ b/apps/Gateway/Gateway/Gateway.cpp
@@ -68,6 +68,10 @@ Gateway::handle_signal (int signum, siginfo_t *, ucontext_t *)
if (signum > 0)
ACE_DEBUG ((LM_DEBUG, "(%t) %S\n", signum));
+ if (ACE_Service_Config::reactor ()->remove_handler
+ (ACE_STDIN, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "remove_handler"), -1);
+
// Shut down the main event loop.
ACE_Service_Config::end_reactor_event_loop ();
return 0;
@@ -76,10 +80,6 @@ Gateway::handle_signal (int signum, siginfo_t *, ucontext_t *)
int
Gateway::handle_input (ACE_HANDLE h)
{
- if (ACE_Service_Config::reactor ()->remove_handler
- (ACE_STDIN, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "remove_handler"), -1);
-
char buf[BUFSIZ];
// Consume the input...
ACE_OS::read (h, buf, sizeof (buf));