aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Thread.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Thread.cs')
-rw-r--r--Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Thread.cs193
1 files changed, 0 insertions, 193 deletions
diff --git a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Thread.cs b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Thread.cs
deleted file mode 100644
index 59f3df469..000000000
--- a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Thread.cs
+++ /dev/null
@@ -1,193 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace SharpCifs.Util.Sharpen
-{
- public class Thread : IRunnable
- {
- private static ThreadGroup _defaultGroup = new ThreadGroup ();
- private bool _interrupted;
- private IRunnable _runnable;
- private ThreadGroup _tgroup;
- private System.Threading.Thread _thread;
-
- [ThreadStatic]
- private static Thread _wrapperThread;
-
- public Thread () : this(null, null, null)
- {
- }
-
- public Thread (string name) : this (null, null, name)
- {
- }
-
- public Thread (ThreadGroup grp, string name) : this (null, grp, name)
- {
- }
-
- public Thread (IRunnable runnable): this (runnable, null, null)
- {
- }
-
- Thread (IRunnable runnable, ThreadGroup grp, string name)
- {
- _thread = new System.Threading.Thread (InternalRun);
-
- this._runnable = runnable ?? this;
- _tgroup = grp ?? _defaultGroup;
- _tgroup.Add (this);
- if (name != null)
- _thread.Name = name;
- }
-
- private Thread (System.Threading.Thread t)
- {
- _thread = t;
- _tgroup = _defaultGroup;
- _tgroup.Add (this);
- }
-
- public static Thread CurrentThread ()
- {
- if (_wrapperThread == null) {
- _wrapperThread = new Thread (System.Threading.Thread.CurrentThread);
- }
- return _wrapperThread;
- }
-
- public string GetName ()
- {
- return _thread.Name;
- }
-
- public ThreadGroup GetThreadGroup ()
- {
- return _tgroup;
- }
-
- private void InternalRun ()
- {
- _wrapperThread = this;
- try {
- _runnable.Run ();
- } catch (Exception exception) {
- Console.WriteLine (exception);
- } finally {
- _tgroup.Remove (this);
- }
- }
-
- public static void Yield ()
- {
- }
-
- public void Interrupt ()
- {
- lock (_thread) {
- _interrupted = true;
- //thread.Interrupt ();
-
- //TODO: implement CancellationToken
- //_thread.Abort();
- throw new NotImplementedException("implement CancellationToken for thread");
- }
- }
-
- public static bool Interrupted ()
- {
- if (Thread._wrapperThread == null) {
- return false;
- }
- Thread wrapperThread = Thread._wrapperThread;
- lock (wrapperThread) {
- bool interrupted = Thread._wrapperThread._interrupted;
- Thread._wrapperThread._interrupted = false;
- return interrupted;
- }
- }
-
- public bool IsAlive ()
- {
- return _thread.IsAlive;
- }
-
- public void Join ()
- {
- _thread.Join ();
- }
-
- public void Join (long timeout)
- {
- _thread.Join ((int)timeout);
- }
-
- public virtual void Run ()
- {
- }
-
- public void SetDaemon (bool daemon)
- {
- _thread.IsBackground = daemon;
- }
-
- public void SetName (string name)
- {
- _thread.Name = name;
- }
-
- public static void Sleep (long milis)
- {
- System.Threading.Thread.Sleep ((int)milis);
- }
-
- public void Start ()
- {
- _thread.Start ();
- }
-
- public void Abort ()
- {
- //TODO: implement CancellationToken
- //_thread.Abort ();
- throw new NotImplementedException("implement CancellationToken for thread");
- }
-
- }
-
- public class ThreadGroup
- {
- private List<Thread> _threads = new List<Thread> ();
-
- public ThreadGroup()
- {
- }
-
- public ThreadGroup (string name)
- {
- }
-
- internal void Add (Thread t)
- {
- lock (_threads) {
- _threads.Add (t);
- }
- }
-
- internal void Remove (Thread t)
- {
- lock (_threads) {
- _threads.Remove (t);
- }
- }
-
- public int Enumerate (Thread[] array)
- {
- lock (_threads) {
- int count = Math.Min (array.Length, _threads.Count);
- _threads.CopyTo (0, array, 0, count);
- return count;
- }
- }
- }
-}