Fix crash due to setting Thread.name after thread start.

Signed-off-by: Diva Canto <diva@metaverseink.com>
LSLKeyTest
Roger Kirkman 2016-05-05 15:21:15 +01:00 committed by Diva Canto
parent 1e44aba620
commit 97a471cb35
2 changed files with 6 additions and 4 deletions

View File

@ -121,7 +121,8 @@ namespace OpenSim.Framework.Monitoring
Thread thread = new Thread(start); Thread thread = new Thread(start);
thread.Priority = priority; thread.Priority = priority;
thread.IsBackground = isBackground; thread.IsBackground = isBackground;
thread.Name = name;
Watchdog.ThreadWatchdogInfo twi Watchdog.ThreadWatchdogInfo twi
= new Watchdog.ThreadWatchdogInfo(thread, timeout, name) = new Watchdog.ThreadWatchdogInfo(thread, timeout, name)
{ AlarmIfTimeout = alarmIfTimeout, AlarmMethod = alarmMethod }; { AlarmIfTimeout = alarmIfTimeout, AlarmMethod = alarmMethod };
@ -129,7 +130,7 @@ namespace OpenSim.Framework.Monitoring
Watchdog.AddThread(twi, name, log:log); Watchdog.AddThread(twi, name, log:log);
thread.Start(); thread.Start();
thread.Name = name;
return thread; return thread;
} }

View File

@ -689,9 +689,10 @@ namespace Amib.Threading
#if !(_SILVERLIGHT) && !(WINDOWS_PHONE) #if !(_SILVERLIGHT) && !(WINDOWS_PHONE)
workerThread.Priority = _stpStartInfo.ThreadPriority; workerThread.Priority = _stpStartInfo.ThreadPriority;
#endif #endif
workerThread.Start();
workerThread.Name = string.Format("STP:{0}:{1}", Name, _threadCounter); workerThread.Name = string.Format("STP:{0}:{1}", Name, _threadCounter);
++_threadCounter; workerThread.Start();
++_threadCounter;
// Add it to the dictionary and update its creation time. // Add it to the dictionary and update its creation time.
_workerThreads[workerThread] = new ThreadEntry(this); _workerThreads[workerThread] = new ThreadEntry(this);