[Stt] Fix lock issue (#126) 4.0.1.14101
authorsungraejo <seongrae.jo@samsung.com>
Tue, 20 Feb 2018 10:48:07 +0000 (19:48 +0900)
committerGitHub <noreply@github.com>
Tue, 20 Feb 2018 10:48:07 +0000 (19:48 +0900)
Signed-off-by: sungrae jo <seongrae.jo@samsung.com>
src/Tizen.Uix.Stt/Tizen.Uix.Stt/SttClient.cs

index 109921f..c057a86 100755 (executable)
@@ -767,17 +767,20 @@ namespace Tizen.Uix.Stt
         public IEnumerable<ResultTime> GetDetailedResult()
         {
             List<ResultTime> list = new List<ResultTime>();
-            _resultTimeDelegate = (IntPtr handle, int index, TimeEvent e, IntPtr text, IntPtr startTime, IntPtr endTime, IntPtr userData) =>
-            {
-                _result = new ResultTime(index, e, Marshal.PtrToStringAnsi(text), (long)startTime, (long)endTime);
-                list.Add(_result);
-                return true;
-            };
-            SttError error = SttForeachDetailedResult(_handle, _resultTimeDelegate, IntPtr.Zero);
-            if (error != SttError.None)
+            lock (thisLock)
             {
-                Log.Error(LogTag, "GetDetailedResult Failed with error " + error);
-                throw ExceptionFactory.CreateException(error);
+                _resultTimeDelegate = (IntPtr handle, int index, TimeEvent e, IntPtr text, IntPtr startTime, IntPtr endTime, IntPtr userData) =>
+                {
+                    _result = new ResultTime(index, e, Marshal.PtrToStringAnsi(text), (long)startTime, (long)endTime);
+                    list.Add(_result);
+                    return true;
+                };
+                SttError error = SttForeachDetailedResult(_handle, _resultTimeDelegate, IntPtr.Zero);
+                if (error != SttError.None)
+                {
+                    Log.Error(LogTag, "GetDetailedResult Failed with error " + error);
+                    throw ExceptionFactory.CreateException(error);
+                }
             }
             return list;
         }