/// <summary>
        ///     Returns an object to the pool.
        /// </summary>
        /// <param name="item">The item to return.</param>
        internal void PutObject(T item)
        {
#if NET_45
            pool.Add(item);
#else
            lock (pool)
                pool.Enqueue(item);
#endif
        }