[NUI] Add thread id in NUIWidgetApplication for avoid crash (#200)
authortscholb <tscholb@gmail.com>
Wed, 4 Apr 2018 03:57:47 +0000 (12:57 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 4 Apr 2018 03:57:47 +0000 (12:57 +0900)
Change-Id: I077f80e0473c54473cecc13b799e3f5f08651086

src/Tizen.NUI/src/internal/Registry.cs
src/Tizen.NUI/src/public/NUIWidgetApplication.cs

index d51aca4..e36dcfc 100755 (executable)
@@ -154,11 +154,6 @@ namespace Tizen.NUI
 
         private static void RegistryCurrentThreadCheck()
         {
-            if(savedApplicationThread == null)
-            {
-                Tizen.Log.Fatal("NUI", $"Error! maybe main thread is created by other process ");
-                return;
-            }
             int currentId = Thread.CurrentThread.ManagedThreadId;
             int mainThreadId = savedApplicationThread.ManagedThreadId;
 
index 70c52fd..f3a4484 100755 (executable)
@@ -18,6 +18,8 @@ using Tizen.Applications;
 using Tizen.Applications.CoreBackend;
 using System.Collections.Generic;
 
+using System.Threading;
+
 namespace Tizen.NUI
 {
 
@@ -34,6 +36,8 @@ namespace Tizen.NUI
         /// <param name="widgetType">Derived widget class type.</param>
         public NUIWidgetApplication( System.Type widgetType ) : base(new NUIWidgetCoreBackend())
         {
+            Registry.Instance.SavedApplicationThread = Thread.CurrentThread;
+
             NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
             core?.RegisterWidgetInfo(new Dictionary<System.Type, string> { { widgetType, ApplicationInfo.ApplicationId } });
         }
@@ -47,6 +51,8 @@ namespace Tizen.NUI
         /// <since_tizen> 4 </since_tizen>
         public NUIWidgetApplication(System.Type widgetType, string styleSheet) : base(new NUIWidgetCoreBackend(styleSheet))
         {
+            Registry.Instance.SavedApplicationThread = Thread.CurrentThread;
+
             NUIWidgetCoreBackend core = Backend as NUIWidgetCoreBackend;
             core?.RegisterWidgetInfo(new Dictionary<System.Type, string> { { widgetType, ApplicationInfo.ApplicationId } });
         }