Update shutdown code 39/103739/1 accepted/tizen/common/20161214.160623 accepted/tizen/ivi/20161214.015332 accepted/tizen/mobile/20161214.014927 accepted/tizen/tv/20161214.015116 accepted/tizen/wearable/20161214.015140 submit/tizen/20161213.083228
authorJeongmo Yang <jm80.yang@samsung.com>
Fri, 9 Dec 2016 08:47:39 +0000 (17:47 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Fri, 9 Dec 2016 08:47:39 +0000 (17:47 +0900)
If commit is failed, resources can not be released completely.
recorder_cancel is added to release resources.

[Version] 0.2.31
[Profile] Common
[Issue Type] Update
[Dependency module] N/A

Change-Id: I580c729e0b2c0c795a9703c7274c5bb22d6857ea
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
muse/src/muse_recorder_dispatcher.c
packaging/mmsvc-recorder.spec

index 940f3f4..6e4bdbf 100644 (file)
@@ -2228,6 +2228,7 @@ static int recorder_cmd_dispatcher_initialize(muse_module_h module)
 
 static int recorder_cmd_dispatcher_shutdown(muse_module_h module)
 {
+       int ret = RECORDER_ERROR_NONE;
        recorder_state_e state = RECORDER_STATE_NONE;
        muse_recorder_handle_s *muse_recorder = NULL;
 
@@ -2244,13 +2245,18 @@ static int recorder_cmd_dispatcher_shutdown(muse_module_h module)
        switch (state) {
        case RECORDER_STATE_PAUSED:
        case RECORDER_STATE_RECORDING:
-               legacy_recorder_commit(muse_recorder->recorder_handle);
+               ret = legacy_recorder_commit(muse_recorder->recorder_handle);
+               if (ret != RECORDER_ERROR_NONE) {
+                       LOGE("commit failed. cancel...");
+                       legacy_recorder_cancel(muse_recorder->recorder_handle);
+               }
                /* fall through */
        case RECORDER_STATE_READY:
                legacy_recorder_unprepare(muse_recorder->recorder_handle);
                /* fall through */
        case RECORDER_STATE_CREATED:
-               if (legacy_recorder_destroy(muse_recorder->recorder_handle) == RECORDER_ERROR_NONE) {
+               ret = legacy_recorder_destroy(muse_recorder->recorder_handle);
+               if (ret == RECORDER_ERROR_NONE) {
                        _recorder_remove_export_data(module, 0, TRUE);
 
                        g_mutex_clear(&muse_recorder->list_lock);
@@ -2259,6 +2265,9 @@ static int recorder_cmd_dispatcher_shutdown(muse_module_h module)
 
                        free(muse_recorder);
                        muse_recorder = NULL;
+               } else {
+                       LOGE("shutdown failed for handle %p %p",
+                               muse_recorder, muse_recorder->recorder_handle);
                }
                break;
        default:
index 0d0e63b..e7a9bfc 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.2.30
+Version:    0.2.31
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0