summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/src/main.cpp
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-02-01 15:44:08 +0100
committerchristian mueller <christian.ei.mueller@bmw.de>2012-02-02 15:27:21 +0100
commit74cf9b985164be8c28a3cd1b11076900792594f8 (patch)
tree9e0cd72bbd6ef6a48385b0ea1907739f6537495f /AudioManagerDaemon/src/main.cpp
parent9f4c15a8e89d798077ca3edf7f786dbc740aa176 (diff)
downloadaudiomanager-74cf9b985164be8c28a3cd1b11076900792594f8.tar.gz
* add an out of memory handler
Diffstat (limited to 'AudioManagerDaemon/src/main.cpp')
-rw-r--r--AudioManagerDaemon/src/main.cpp11
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;