Add a checker whether ttse_terminate() is invoked or not 23/265323/2
authorsooyeon <sooyeon.kim@samsung.com>
Fri, 15 Oct 2021 11:19:45 +0000 (20:19 +0900)
committersooyeon <sooyeon.kim@samsung.com>
Fri, 15 Oct 2021 11:41:08 +0000 (20:41 +0900)
- When 'ttse_terminate' is invoked, 'ttsd_ipc_close_connection()', 'ttsd_network_finalize()', and ttsd_finalize()' are invoked repeatably.
To avoid this phenomenon, we remove them from 'ttsd_terminate()'.

Change-Id: Ia048cce5f884d4b3fa71f63258caf9e83e43f38d
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
server/ttsd_server.c
server/ttse.c

index 6901f08abdfa4038dee1236d288110717c3a9530..cb83d41667d807281757c1fdab063ac2a41097c3 100644 (file)
@@ -568,10 +568,6 @@ int ttsd_terminate()
 
        ttsd_terminate_daemon(NULL);
 
-       ttsd_ipc_close_connection();
-       ttsd_network_finalize();
-       ttsd_finalize();
-
        return TTSD_ERROR_NONE;
 }
 
index 2d514bf88bde352d9c03cd066e2b7a6ca8a52702..69489cab1ed39922f523c5b97830f6791da7b133 100755 (executable)
@@ -30,6 +30,7 @@
 #include "ttse_internal.h"
 
 static ttsd_mode_e g_tts_mode = TTSD_MODE_DEFAULT;
+static bool g_is_terminated = false;
 
 const char* tts_tag()
 {
@@ -134,6 +135,7 @@ int ttse_main(int argc, char** argv, ttse_request_callback_s *callback)
        bundle *b = NULL;
        ttsd_mode_e mode = TTSD_MODE_DEFAULT;
        int ret = TTSE_ERROR_NONE;
+       g_is_terminated = false;
 
 
        b = bundle_import_from_argv(argc, argv);
@@ -202,6 +204,12 @@ int ttse_main(int argc, char** argv, ttse_request_callback_s *callback)
 
 int ttse_terminate()
 {
+       if (true == g_is_terminated) {
+               SLOG(LOG_INFO, tts_tag(), "[INFO] ttse_terminate() is already invoked.");
+               return TTSE_ERROR_NONE;
+       }
+
+       g_is_terminated = true;
        ttsd_terminate();
 
        /* Unregister vconfkey callback */