private PooledStream UserCreateRequest() {
// called by user when they were not able to obtain a free object but
// instead obtained creation mutex
GlobalLog.Enter("ConnectionPool#" + ValidationHelper.HashString(this) + "::UserCreateRequest");
PooledStream pooledStream = null;
if (!ErrorOccurred) {
if (Count < MaxPoolSize || 0 == MaxPoolSize) {
if ((Count & 0x1) == 0x1 || !ReclaimEmancipatedObjects())
pooledStream = Create(m_CreateConnectionCallback);
}
}
GlobalLog.Leave("ConnectionPool#" + ValidationHelper.HashString(this) + "::UserCreateRequest", ValidationHelper.HashString(pooledStream));
return pooledStream;
}
}