summaryrefslogtreecommitdiff
path: root/include/services.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-09-05 18:44:43 -0400
committerAdam <Adam@anope.org>2011-09-10 02:06:31 -0400
commit63cb8ca24c0d4003343340bb8413b7f84de1a6a3 (patch)
treed71f0cead730065dd8509e284d66b6767e7ebd25 /include/services.h
parentdc5d1fa21c20000b77bf713585333c79121a8df0 (diff)
Moved signal/thread/mode checking to use signal pipes
Diffstat (limited to 'include/services.h')
-rw-r--r--include/services.h31
1 files changed, 15 insertions, 16 deletions
diff --git a/include/services.h b/include/services.h
index 9ed5e2ba3..520182e98 100644
--- a/include/services.h
+++ b/include/services.h
@@ -241,22 +241,6 @@ class DatabaseException : public CoreException
virtual ~DatabaseException() throw() { }
};
-class Signal
-{
- static std::vector<Signal *> SignalHandlers;
- static void SignalHandler(int signal);
-
- struct sigaction action, old;
- sig_atomic_t called;
- public:
- static void Process();
-
- int signal;
-
- Signal(int s);
- ~Signal();
- virtual void OnSignal() = 0;
-};
/** Debug cast to be used instead of dynamic_cast, this uses dynamic_cast
* for debug builds and static_cast on releass builds to speed up the program
@@ -406,6 +390,21 @@ template class Service<Base>;
/*************************************************************************/
+class Signal : public Pipe
+{
+ static std::vector<Signal *> SignalHandlers;
+ static void SignalHandler(int signal);
+
+ struct sigaction action, old;
+ public:
+ int signal;
+
+ Signal(int s);
+ ~Signal();
+
+ virtual void OnNotify() = 0;
+};
+
class ConvertException : public CoreException
{
public: