Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }