memd: fix SVACE issue 29/151729/3 submit/tizen_4.0/20170926.110401
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Thu, 21 Sep 2017 15:45:01 +0000 (18:45 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Fri, 22 Sep 2017 09:38:55 +0000 (12:38 +0300)
Storing local variable in global one

Change-Id: I7a1f8a6bc84cfd44a06c0b0c3fd81b44bca65618
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
src/memd/src/main.cpp

index 77bbbb2..a22d497 100644 (file)
@@ -123,27 +123,38 @@ static void signal_handler(int sig)
     }
 }
 
-static void signal_setup()
+static void signal_setup(EventLoop *loop)
 {
+    g_loop = loop;
+
     signal(SIGTERM, signal_handler);
     signal(SIGHUP, signal_handler);
 }
 
-static void do_main()
+static void signal_reset()
 {
-    signal_setup();
+    signal(SIGHUP, SIG_DFL);
+    signal(SIGINT, SIG_DFL);
+
+    g_loop = nullptr;
+}
 
+
+static void do_main()
+{
     EventLoop::RecvData recv_data(nullptr, recv_handler, MEMD_CNT);
 
     EventLoop event_loop;
-    g_loop = &event_loop;
-    g_loop->init(SOCKET_PATH);
+
+    signal_setup(&event_loop);
+    event_loop.init(SOCKET_PATH);
 
     sd_notify(0, "READY=1");
-    g_loop->run(recv_data, CONNECT_TIMEOUT);
+    event_loop.run(recv_data, CONNECT_TIMEOUT);
     sd_notify(0, "STOPPING=1");
 
-    g_loop->uninit();
+    event_loop.uninit();
+    signal_reset();
 }