From: Wonnam Jang Date: Thu, 27 Apr 2017 05:46:31 +0000 (+0900) Subject: Fix internal state error when api is called in thread X-Git-Tag: accepted/tizen/unified/20170511.173630~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d5ee7634d3d134323526d03da0deae1101c0ffb2;p=platform%2Fcore%2Fuifw%2Fvoice-control.git Fix internal state error when api is called in thread Change-Id: I1aaab56682def70092c9241503e7ab844f87e580 Signed-off-by: Wonnam Jang --- diff --git a/client/vc_mgr.c b/client/vc_mgr.c index ee31520..cad7905 100644 --- a/client/vc_mgr.c +++ b/client/vc_mgr.c @@ -1684,10 +1684,12 @@ int vc_mgr_start(bool exclusive_command_option) ret = -1; count = 0; while (0 != ret) { + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STARTING); ret = vc_mgr_dbus_request_start(g_vc_m->handle, (int)recognition_mode, exclusive_command_option, start_by_client); if (0 != ret) { if (VC_ERROR_TIMED_OUT != ret) { SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to start request start : %s", __vc_mgr_get_error_code(ret)); + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE); break; } else { SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry start request start : %s", __vc_mgr_get_error_code(ret)); @@ -1696,12 +1698,12 @@ int vc_mgr_start(bool exclusive_command_option) if (VC_RETRY_COUNT == count) { SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request"); vc_mgr_client_set_exclusive_command(g_vc_m, false); + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE); break; } } } else { SLOG(LOG_DEBUG, TAG_VCM, "[SUCCESS] start recognition"); - vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STARTING); } } @@ -1763,10 +1765,12 @@ int vc_mgr_stop() int count = 0; /* do request */ while (0 != ret) { + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STOPPING); ret = vc_mgr_dbus_request_stop(g_vc_m->handle); if (0 != ret) { if (VC_ERROR_TIMED_OUT != ret) { SLOG(LOG_DEBUG, TAG_VCM, "[ERROR] Fail to stop request : %s", __vc_mgr_get_error_code(ret)); + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE); break; } else { SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry stop request : %s", __vc_mgr_get_error_code(ret)); @@ -1774,12 +1778,12 @@ int vc_mgr_stop() count++; if (VC_RETRY_COUNT == count) { SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request"); + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE); break; } } } else { SLOG(LOG_DEBUG, TAG_VCM, "[SUCCESS] Stop recognition"); - vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_STOPPING); } } @@ -1835,10 +1839,12 @@ int vc_mgr_cancel() int ret = -1; int count = 0; while (0 != ret) { + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_CANCELING); ret = vc_mgr_dbus_request_cancel(g_vc_m->handle); if (0 != ret) { if (VC_ERROR_TIMED_OUT != ret) { SLOG(LOG_DEBUG, TAG_VCM, "[ERROR] Fail to cancel request : %s", __vc_mgr_get_error_code(ret)); + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE); break; } else { SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry cancel request : %s", __vc_mgr_get_error_code(ret)); @@ -1846,12 +1852,12 @@ int vc_mgr_cancel() count++; if (VC_RETRY_COUNT == count) { SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request"); + vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_NONE); break; } } } else { SLOG(LOG_DEBUG, TAG_VCM, "[SUCCESS] Cancel recognition"); - vc_mgr_client_set_internal_state(g_vc_m, VC_INTERNAL_STATE_CANCELING); } }