Fix static analysis issues (#2190) (#3234)
authorHyunho Kang <hhstark.kang@samsung.com>
Mon, 28 Jun 2021 02:16:48 +0000 (11:16 +0900)
committerGitHub <noreply@github.com>
Mon, 28 Jun 2021 02:16:48 +0000 (11:16 +0900)
Issues:
 - NO_LOCK.STAT

Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
Co-authored-by: hjhun <36876573+hjhun@users.noreply.github.com>
src/Tizen.Applications.Common/Tizen.Applications/ApplicationManager.cs

index e4be7313ca6e601f1e649bfe974c89033914db6a..3331e7bbf9cb343d6c466d58b60523e37c3cf34b 100644 (file)
@@ -447,13 +447,16 @@ namespace Tizen.Applications
                 }
                 using (ApplicationRunningContext context = new ApplicationRunningContext(clonedHandle))
                 {
-                    if (state == Interop.ApplicationManager.AppContextEvent.Launched)
+                    lock (s_applicationChangedEventLock)
                     {
-                        s_launchedHandler?.Invoke(null, new ApplicationLaunchedEventArgs { ApplicationRunningContext = context });
-                    }
-                    else if (state == Interop.ApplicationManager.AppContextEvent.Terminated)
-                    {
-                        s_terminatedHandler?.Invoke(null, new ApplicationTerminatedEventArgs { ApplicationRunningContext = context });
+                        if (state == Interop.ApplicationManager.AppContextEvent.Launched)
+                        {
+                            s_launchedHandler?.Invoke(null, new ApplicationLaunchedEventArgs { ApplicationRunningContext = context });
+                        }
+                        else if (state == Interop.ApplicationManager.AppContextEvent.Terminated)
+                        {
+                            s_terminatedHandler?.Invoke(null, new ApplicationTerminatedEventArgs { ApplicationRunningContext = context });
+                        }
                     }
                 }
             };
@@ -488,13 +491,16 @@ namespace Tizen.Applications
 
             s_eventCallback = (string appType, string appId, Interop.ApplicationManager.AppManagerEventType eventType, Interop.ApplicationManager.AppManagerEventState eventState, IntPtr eventHandle, IntPtr UserData) =>
             {
-                if (eventType == Interop.ApplicationManager.AppManagerEventType.Enable)
-                {
-                    s_enabledHandler?.Invoke(null, new ApplicationEnabledEventArgs(appId, (ApplicationEventState)eventState));
-                }
-                else if (eventType == Interop.ApplicationManager.AppManagerEventType.Disable)
+                lock (s_eventLock)
                 {
-                    s_disabledHandler?.Invoke(null, new ApplicationDisabledEventArgs(appId, (ApplicationEventState)eventState));
+                    if (eventType == Interop.ApplicationManager.AppManagerEventType.Enable)
+                    {
+                        s_enabledHandler?.Invoke(null, new ApplicationEnabledEventArgs(appId, (ApplicationEventState)eventState));
+                    }
+                    else if (eventType == Interop.ApplicationManager.AppManagerEventType.Disable)
+                    {
+                        s_disabledHandler?.Invoke(null, new ApplicationDisabledEventArgs(appId, (ApplicationEventState)eventState));
+                    }
                 }
             };
             err = Interop.ApplicationManager.AppManagerSetEventCallback(_eventHandle, s_eventCallback, IntPtr.Zero);