internal void Push(Object pooledStream) {
GlobalLog.Assert(null != pooledStream, "push null");
if (null == pooledStream) { throw new ArgumentNullException("pooledStream"); }
lock(_stack.SyncRoot) {
#if DEBUG
GlobalLog.Assert(null == doublepush[pooledStream], "object already in stack");
doublepush[pooledStream] = _stack.Count;
#endif
_stack.Push(pooledStream);
#if DEBUG
GlobalLog.Assert(_count+1 == _stack.Count, "push count mishandle");
#endif
_count = _stack.Count;
}
}