blob: f01577f730e574798837de63a16ae49eed92734a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
// QoS_Signal_Handler.cpp
// $Id$
#include "ace/Log_Msg.h"
#include "QoS_Signal_Handler.h"
// constructor.
QoS_Signal_Handler::QoS_Signal_Handler (ACE_QoS_Session *qos_session)
: qos_session_ (qos_session)
{
}
// Releases the QoS sessions gracefully.
int
QoS_Signal_Handler::handle_signal (int signum, siginfo_t *, ucontext_t*)
{
ACE_DEBUG ((LM_DEBUG,
"QoS_Signal_Handler::handle_signal\n"));
if (signum == SIGINT)
{
ACE_DEBUG ((LM_DEBUG,
"QoS_Signal_Handler::handle_signal SIGINT called\n"));
if (this->qos_session_->close () == -1)
ACE_ERROR_RETURN ((LM_ERROR,
"Unable to close the QoS session.\n"),
-1);
else
ACE_DEBUG ((LM_DEBUG,
"QoS Session with id %d closed successfully.\n",
this->qos_session_->session_id ()));
}
else
ACE_DEBUG ((LM_DEBUG,
"A signal other than SIGINT received.\nIgnoring.\n"));
return 0;
}
|