static Ecore_Timer* g_check_client_timer = NULL;
static Ecore_Timer* g_wait_timer = NULL;
+static Ecore_Timer* g_terminate_timer = NULL;
static utterance_t g_utt;
Eina_Bool ttsd_terminate_daemon(void *data)
{
ttsd_data_foreach_clients(__terminate_client, NULL);
+ g_terminate_timer = NULL;
return EINA_FALSE;
}
{
if (TTSD_MODE_SCREEN_READER == ttsd_get_mode() && false == value) {
SLOG(LOG_INFO, tts_tag(), "[Server] Screen reader is OFF. Start to terminate tts daemon");
- ecore_timer_add(1, ttsd_terminate_daemon, NULL);
+ if (g_terminate_timer) {
+ ecore_timer_del(g_terminate_timer);
+ g_terminate_timer = NULL;
+ }
+ g_terminate_timer = ecore_timer_add(1, ttsd_terminate_daemon, NULL);
} else {
SLOG(LOG_DEBUG, tts_tag(), "[Server] Screen reader is %s", value ? "ON" : "OFF");
}
ttsd_engine_agent_release();
+
+ if (g_wait_timer) {
+ ecore_timer_del(g_wait_timer);
+ g_wait_timer = NULL;
+ SLOG(LOG_INFO, tts_tag(), "[INFO] Delete ecore waiting timer handle");
+ }
+
+ if (g_terminate_timer) {
+ ecore_timer_del(g_terminate_timer);
+ g_terminate_timer = NULL;
+ SLOG(LOG_INFO, tts_tag(), "[INFO] Delete ecore terminating timer handle");
+ }
+
if (NULL != g_check_client_timer) {
ecore_timer_del(g_check_client_timer);
g_check_client_timer = NULL;
-
- SLOG(LOG_INFO, tts_tag(), "[INFO] Delete ecore timer handle");
+ SLOG(LOG_INFO, tts_tag(), "[INFO] Delete ecore checking client timer handle");
}
return TTSD_ERROR_NONE;