summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/VRM/VRM/DepthFirstScheduler/MonitorQueue.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/VRM/VRM/DepthFirstScheduler/MonitorQueue.cs')
-rw-r--r--Assets/ThirdParty/VRM/VRM/DepthFirstScheduler/MonitorQueue.cs47
1 files changed, 0 insertions, 47 deletions
diff --git a/Assets/ThirdParty/VRM/VRM/DepthFirstScheduler/MonitorQueue.cs b/Assets/ThirdParty/VRM/VRM/DepthFirstScheduler/MonitorQueue.cs
deleted file mode 100644
index 79bf9823..00000000
--- a/Assets/ThirdParty/VRM/VRM/DepthFirstScheduler/MonitorQueue.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading;
-
-
-namespace DepthFirstScheduler
-{
- /// <summary>
- /// http://blogs.msdn.com/b/toub/archive/2006/04/12/blocking-queues.aspx
- ///
- /// 終了を通知するにはnullを投入する手が使える
- /// </summary>
- /// <typeparam name="T"></typeparam>
- public class MonitorQueue<T>
- {
- private Int32 _count = 0;
- public Int32 Count
- {
- get
- {
- return _count;
- }
- }
-
- private Queue<T> _queue = new Queue<T>();
-
- public T Dequeue()
- {
- lock (_queue)
- {
- while (_count <= 0) Monitor.Wait(_queue);
- _count--;
- return _queue.Dequeue();
- }
- }
-
- public void Enqueue(T data)
- {
- lock (_queue)
- {
- _queue.Enqueue(data);
- _count++;
- Monitor.Pulse(_queue);
- }
- }
- }
-}