Mercurial > hg > ucis.core
comparison Util/WorkQueue.cs @ 86:5d1b72ba44dc
Small fixes in WorkQueue
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Thu, 05 Jun 2014 00:24:24 +0200 |
parents | b7bc27c6734e |
children |
comparison
equal
deleted
inserted
replaced
85:40715b34d0d3 | 86:5d1b72ba44dc |
---|---|
71 } | 71 } |
72 private void Worker(Object state) { | 72 private void Worker(Object state) { |
73 while (true) { | 73 while (true) { |
74 TWork item; | 74 TWork item; |
75 lock (queue) { | 75 lock (queue) { |
76 if (workers >= maxWorkers) { | 76 if (workers > maxWorkers) { |
77 workers--; | 77 workers--; |
78 break; | 78 break; |
79 } | 79 } |
80 if (queue.Count == 0) { | 80 if (queue.Count == 0) { |
81 if (idleWorkers >= maxIdleWorkers) { | 81 if (idleWorkers > maxIdleWorkers) { |
82 workers--; | 82 workers--; |
83 queue.TrimExcess(); | 83 queue.TrimExcess(); |
84 break; | 84 break; |
85 } | 85 } |
86 idleWorkers++; | 86 idleWorkers++; |