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)