[Stt] Fix lock issue 11/170611/1
authorsungrae jo <seongrae.jo@samsung.com>
Wed, 21 Feb 2018 05:04:56 +0000 (14:04 +0900)
committersungrae jo <seongrae.jo@samsung.com>
Wed, 21 Feb 2018 05:07:51 +0000 (14:07 +0900)
Change-Id: I9affdb3c2ce43d0ef212b7bd8ac313631878e25f
Signed-off-by: sungrae jo <seongrae.jo@samsung.com>
src/Tizen.Uix.Stt/Tizen.Uix.Stt/SttClient.cs

index 109921f0f6c056fd620ea9ae8c602038d50e05dc..c057a86cec33141ce4785769ac8c095094118d28 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;
         }