diff options
author | christian mueller <christian.ei.mueller@bmw.de> | 2012-02-01 15:44:08 +0100 |
---|---|---|
committer | christian mueller <christian.ei.mueller@bmw.de> | 2012-02-02 15:27:21 +0100 |
commit | 74cf9b985164be8c28a3cd1b11076900792594f8 (patch) | |
tree | 9e0cd72bbd6ef6a48385b0ea1907739f6537495f /AudioManagerDaemon/src/main.cpp | |
parent | 9f4c15a8e89d798077ca3edf7f786dbc740aa176 (diff) | |
download | audiomanager-74cf9b985164be8c28a3cd1b11076900792594f8.tar.gz |
* add an out of memory handler
Diffstat (limited to 'AudioManagerDaemon/src/main.cpp')
-rw-r--r-- | AudioManagerDaemon/src/main.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/AudioManagerDaemon/src/main.cpp b/AudioManagerDaemon/src/main.cpp index faaafdb..c4f4d0d 100644 --- a/AudioManagerDaemon/src/main.cpp +++ b/AudioManagerDaemon/src/main.cpp @@ -59,6 +59,7 @@ #include <csignal> #include <cstring> #include <cstdio> +#include <new> DLT_DECLARE_CONTEXT(AudioManager) @@ -87,6 +88,13 @@ unsigned int telnetport = DEFAULT_TELNETPORT; unsigned int maxConnections = MAX_TELNETCONNECTIONS; int fd0, fd1, fd2; +void OutOfMemoryHandler () +{ + logError("No more memory - bye"); + //todo: add gracefull dead here. Do what can be done persistence wise + exit (1); +} + void daemonize() { umask(0); @@ -242,6 +250,9 @@ int main(int argc, char *argv[]) signalChildAction.sa_flags = SA_NOCLDWAIT; sigaction(SIGCHLD, &signalChildAction, NULL); + //register new out of memory handler + std::set_new_handler(&OutOfMemoryHandler); + //Instantiate all classes. Keep in same order ! #ifdef WITH_SOCKETHANDLER_LOOP SocketHandler iSocketHandler; |