diff options
Diffstat (limited to 'OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs')
-rw-r--r-- | OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs index 83685fc..be47385 100644 --- a/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs +++ b/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs | |||
@@ -1,33 +1,33 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Threading; | 2 | using System.Threading; |
3 | using System.Collections.Generic; | 3 | using System.Collections.Generic; |
4 | using System.Text; | 4 | using System.Text; |
5 | 5 | ||
6 | namespace OpenGridServices.Manager | 6 | namespace OpenGridServices.Manager |
7 | { | 7 | { |
8 | public class BlockingQueue<T> | 8 | public class BlockingQueue<T> |
9 | { | 9 | { |
10 | private Queue<T> _queue = new Queue<T>(); | 10 | private Queue<T> _queue = new Queue<T>(); |
11 | private object _queueSync = new object(); | 11 | private object _queueSync = new object(); |
12 | 12 | ||
13 | public void Enqueue(T value) | 13 | public void Enqueue(T value) |
14 | { | 14 | { |
15 | lock (_queueSync) | 15 | lock (_queueSync) |
16 | { | 16 | { |
17 | _queue.Enqueue(value); | 17 | _queue.Enqueue(value); |
18 | Monitor.Pulse(_queueSync); | 18 | Monitor.Pulse(_queueSync); |
19 | } | 19 | } |
20 | } | 20 | } |
21 | 21 | ||
22 | public T Dequeue() | 22 | public T Dequeue() |
23 | { | 23 | { |
24 | lock (_queueSync) | 24 | lock (_queueSync) |
25 | { | 25 | { |
26 | if (_queue.Count < 1) | 26 | if (_queue.Count < 1) |
27 | Monitor.Wait(_queueSync); | 27 | Monitor.Wait(_queueSync); |
28 | 28 | ||
29 | return _queue.Dequeue(); | 29 | return _queue.Dequeue(); |
30 | } | 30 | } |
31 | } | 31 | } |
32 | } | 32 | } |
33 | } | 33 | } |