#25: adapt DataHandlerPool

pull/27/head
Simon G 5 years ago
parent 93e2a1fd8c
commit 2d4b9c820d
  1. 11
      GBase/DataHandling/Pool/DataHandlerPool.cs

@ -42,7 +42,7 @@ namespace GBase.DataHandling.Pool
if (_pool.All(i => i.InUse) && _pool.Count == _availableDataHandlers) //no free dataHandlers available if (_pool.All(i => i.InUse) && _pool.Count == _availableDataHandlers) //no free dataHandlers available
return await WaitForDataHandler(requester, cancellationToken); return await WaitForDataHandler(requester, cancellationToken);
else if (_pool.All(i => i.InUse)) //every existing dataHandler is used -> create a new one else if (_pool.All(i => i.InUse)) //every existing dataHandler is used -> create a new one
return await CreateDataHandler(overwrite, cancellationToken); return CreateDataHandler(overwrite);
else //there are unused dataHandlers existing else //there are unused dataHandlers existing
return GetDataHandler(); return GetDataHandler();
} }
@ -72,10 +72,10 @@ namespace GBase.DataHandling.Pool
return dataHandler; return dataHandler;
} }
private async Task<IDataHandler> CreateDataHandler(bool overwrite, CancellationToken cancellationToken) private IDataHandler CreateDataHandler(bool overwrite)
{ {
IPoolItem<IDataHandler> item = _poolItemFactory.Create(_dataHandlerFactory.Create()); IPoolItem<IDataHandler> item = _poolItemFactory.Create(_dataHandlerFactory.Create());
await item.Item.Init(overwrite, cancellationToken); item.Item.Init(overwrite);
_pool.Add(item); _pool.Add(item);
item.InUse = true; item.InUse = true;
@ -96,11 +96,6 @@ namespace GBase.DataHandling.Pool
{ {
await Task.Delay(1000); await Task.Delay(1000);
} }
foreach (var dataHandler in _pool.Select(i => i.Item))
{
await dataHandler.DisposeAsync();
}
} }
} }
} }
Loading…
Cancel
Save