コード例 #1
0
ファイル: Watchdog.cs プロジェクト: benlovell/machine
 public void Run(Worker worker)
 {
     while (worker.IsAlive)
       {
     _pool.AdjustPoolSizeIfNecessary();
     _threadManager.Sleep(TimeSpan.FromSeconds(1.0));
       }
 }
コード例 #2
0
 public override IQueue CreateQueueForWorker(Worker worker)
 {
     using (RWLock.AsWriter(_lock))
       {
     QueueOfRunnables queue = new QueueOfRunnables();
     _queues.Add(queue);
     return queue;
       }
 }
コード例 #3
0
ファイル: BusyWatcher.cs プロジェクト: simonlaroche/machine
 public void MarkAsFree(Worker worker)
 {
     Interlocked.Increment(ref _free);
 }
コード例 #4
0
ファイル: BusyWatcher.cs プロジェクト: simonlaroche/machine
 public void MarkAsUnavailable(Worker worker)
 {
     MarkAsBusy(worker);
       Interlocked.Decrement(ref _total);
 }
コード例 #5
0
ファイル: BusyWatcher.cs プロジェクト: simonlaroche/machine
 public void MarkAsBusy(Worker worker)
 {
     Interlocked.Decrement(ref _free);
 }
コード例 #6
0
ファイル: BusyWatcher.cs プロジェクト: simonlaroche/machine
 public void MarkAsAvailable(Worker worker)
 {
     Interlocked.Increment(ref _total);
       MarkAsFree(worker);
 }
コード例 #7
0
 public override IQueue CreateQueueForWorker(Worker worker)
 {
     return _queue;
 }
コード例 #8
0
 public WorkerMonitor(BusyWatcher busyWatcher, Worker worker)
 {
     _worker = worker;
       _busyWatcher = busyWatcher;
 }
コード例 #9
0
ファイル: QueueStrategy.cs プロジェクト: benlovell/machine
 public abstract IQueue CreateQueueForWorker(Worker worker);