From: dongsug-song <35130733+dongsug-song@users.noreply.github.com> Date: Wed, 11 Dec 2019 06:29:27 +0000 (+0900) Subject: [NUI] Add checking if the Timer is used in main thread (#1178) X-Git-Tag: submit/tizen_5.5/20191212.005148~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ed8d9f1cd21a6c17cf61f4d916d2ce5cfef4e9b;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Add checking if the Timer is used in main thread (#1178) --- diff --git a/src/Tizen.NUI/src/public/Timer.cs b/src/Tizen.NUI/src/public/Timer.cs index 5147c39..7e7b761 100755 --- a/src/Tizen.NUI/src/public/Timer.cs +++ b/src/Tizen.NUI/src/public/Timer.cs @@ -18,6 +18,7 @@ using System; using System.Runtime.InteropServices; using System.ComponentModel; using System.Threading; +using System.Diagnostics; namespace Tizen.NUI { @@ -49,6 +50,18 @@ namespace Tizen.NUI /// 3 public Timer(uint milliSec) : this(Interop.Timer.Timer_New(milliSec), true) { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); NUILog.Debug($"(0x{swigCPtr.Handle:X}) Timer({milliSec}) Constructor!"); @@ -88,6 +101,19 @@ namespace Tizen.NUI { add { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + + if (_timerTickEventHandler == null && disposed == false) { TickSignal().Connect(_timerTickCallbackOfNative); @@ -96,6 +122,18 @@ namespace Tizen.NUI } remove { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + _timerTickEventHandler -= value; if (_timerTickEventHandler == null && TickSignal().Empty() == false) { @@ -115,10 +153,34 @@ namespace Tizen.NUI { get { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + return GetInterval(); } set { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + SetInterval(value); } } @@ -130,6 +192,18 @@ namespace Tizen.NUI /// 3 public void Start() { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + played = true; Interop.Timer.Timer_Start(swigCPtr); @@ -142,6 +216,19 @@ namespace Tizen.NUI /// 3 public void Stop() { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + played = false; Interop.Timer.Timer_Stop(swigCPtr); @@ -155,6 +242,18 @@ namespace Tizen.NUI /// 3 public bool IsRunning() { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + bool ret = Interop.Timer.Timer_IsRunning(swigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; @@ -200,6 +299,18 @@ namespace Tizen.NUI /// 3 protected override void Dispose(DisposeTypes type) { + if (Thread.CurrentThread.ManagedThreadId != 1) + { + Tizen.Log.Error("NUI", "current threadID : " + Thread.CurrentThread.ManagedThreadId); + + StackTrace st = new StackTrace(true); + for (int i = 0; i < st.FrameCount; i++) + { + StackFrame sf = st.GetFrame(i); + Tizen.Log.Error("NUI", " Method " + sf.GetMethod()); + } + } + NUILog.Debug($"(0x{swigCPtr.Handle:X}) Timer.Dispose(type={type}, disposed={disposed})"); if (this != null && _timerTickCallbackDelegate != null)