Fixed continuous vibration along with system hang. 33/10033/1
authorVineet Uprari <v.uprari@samsung.com>
Fri, 13 Sep 2013 09:48:31 +0000 (15:18 +0530)
committerVineet Uprari <v.uprari@samsung.com>
Mon, 16 Sep 2013 05:12:23 +0000 (10:42 +0530)
Change-Id: I9afb037601cb814b74d91bbb28ee7337b59e4548

tizen/DEVICE/src/file.c

index b640e0c..1a6ae80 100644 (file)
@@ -121,7 +121,7 @@ static int _cancel_thread(void)
                usleep(100);
                MODULE_LOG("Already locked..");
        }
-       __haptic_predefine_action(gbuffer.handle, STOP, NULL);
+
        pthread_mutex_unlock(&mutex);
 
        if ((ret = pthread_cancel(tid)) < 0) {
@@ -163,6 +163,11 @@ static void __clean_up(void *arg)
 
        pbuffer->channels = 0;
        pbuffer->length = 0;
+
+        if(stop){
+             __haptic_predefine_action(gbuffer.handle, STOP, NULL);
+             pthread_mutex_unlock(&mutex);
+        }
 }
 
 static void* __play_cb(void *arg)
@@ -182,7 +187,6 @@ static void* __play_cb(void *arg)
                        for (k = 0; k < pbuffer->channels; ++k) {
                                pthread_mutex_lock(&mutex);
                                if (stop) {
-                                       pthread_mutex_unlock(&mutex);
                                        pthread_exit((void*)0);
                                }
                                ch = pbuffer->ppbuffer[k][j];