System.Threading.ReaderWriterLock.GetOrCreateReaderEvent C# (CSharp) Method

GetOrCreateReaderEvent() private method

Failed to allocate the event object
private GetOrCreateReaderEvent ( ) : ManualResetEventSlim
return ManualResetEventSlim
        private ManualResetEventSlim GetOrCreateReaderEvent()
        {
            ManualResetEventSlim currentEvent = _readerEvent;
            if (currentEvent != null)
            {
                return currentEvent;
            }

            currentEvent = new ManualResetEventSlim(false, 0);
            ManualResetEventSlim previousEvent = Interlocked.CompareExchange(ref _readerEvent, currentEvent, null);
            if (previousEvent == null)
            {
                return currentEvent;
            }

            currentEvent.Dispose();
            return previousEvent;
        }