public SingletonModulePool(IRpcModuleFactory <T> factory, bool allowExclusive = true) { Factory = factory; _onlyInstance = factory.Create(); _onlyInstanceAsTask = Task.FromResult(_onlyInstance); _allowExclusive = allowExclusive; }
public BoundedModulePool(int capacity, IRpcModuleFactory <T> factory) { Factory = factory; _semaphore = new SemaphoreSlim(capacity); for (int i = 0; i < capacity; i++) { _bag.Add(Factory.Create()); } }
public BoundedModulePool(int exclusiveCapacity, IRpcModuleFactory <T> factory) { Factory = factory; _semaphore = new SemaphoreSlim(exclusiveCapacity); for (int i = 0; i < exclusiveCapacity; i++) { _bag.Add(Factory.Create()); } _shared = factory.Create(); }
public BoundedModulePool(IRpcModuleFactory <T> factory, int exclusiveCapacity, int timeout) { _timeout = timeout; Factory = factory; _semaphore = new SemaphoreSlim(exclusiveCapacity); for (int i = 0; i < exclusiveCapacity; i++) { _pool.Enqueue(Factory.Create()); } _shared = factory.Create(); _sharedAsTask = Task.FromResult(_shared); }
public SingletonModulePool(IRpcModuleFactory <T> factory, bool allowExclusive) { Factory = factory; _onlyInstance = factory.Create(); _allowExclusive = allowExclusive; }
public SingletonModulePool(IRpcModuleFactory <T> factory) { Factory = factory; _onlyInstance = factory.Create(); }