From c763ae8c471fc91978b0a38a5de3ee76d9eb01c6 Mon Sep 17 00:00:00 2001 From: Kwangyoun Kim Date: Thu, 1 Sep 2016 19:34:01 +0900 Subject: [PATCH] Fix thread bug for error handling Change-Id: I0a6d59803e201f15962768e67141f9c15926b104 --- server/sttd_engine_agent.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/server/sttd_engine_agent.c b/server/sttd_engine_agent.c index 81417d5..3bf7095 100644 --- a/server/sttd_engine_agent.c +++ b/server/sttd_engine_agent.c @@ -1068,6 +1068,15 @@ int sttd_engine_agent_check_app_agreed(const char* appid, bool* result) return 0; } +static void __recorder_destroy_by_error_result(void *data) +{ + SLOG(LOG_DEBUG, TAG_STTD, "[Engine Agent] Destroy recorder"); + if (0 != sttd_recorder_destroy()) + SECURE_SLOG(LOG_WARN, TAG_STTD, "[Engine Agent] Fail to destroy recorder"); + + return; +} + int sttd_engine_agent_send_result(stte_result_event_e event, const char* type, const char** result, int result_count, const char* msg, void* time_info, void *user_data) { @@ -1093,9 +1102,7 @@ int sttd_engine_agent_send_result(stte_result_event_e event, const char* type, c #ifdef AUDIO_CREATE_ON_START if (event == STTE_RESULT_EVENT_ERROR) { - SLOG(LOG_DEBUG, TAG_STTD, "[Engine Agent] Destroy recorder"); - if (0 != sttd_recorder_destroy()) - SECURE_SLOG(LOG_WARN, TAG_STTD, "[Engine Agent] Fail to destroy recorder"); + ecore_main_loop_thread_safe_call_async(__recorder_destroy_by_error_result, NULL); } #endif -- 2.7.4