/// <summary> /// Retrieves a stream connection from the pool of connections /// </summary> /// <param name="result"></param> /// <returns></returns> public bool Get(out StreamConnection result) { if (!_queue.TryDequeue(out result)) { return(false); } Interlocked.Decrement(ref _createdObjects); return(true); }
/// <summary> /// Adds/Returns a stream connection to the pool of connections /// </summary> /// <param name="item"></param> /// <returns></returns> public bool Return(StreamConnection item) { if (_isLimitedPool && (_createdObjects > _size)) { return(false); } _queue.Enqueue(item); Interlocked.Increment(ref _createdObjects); return(true); }