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

ReleaseEvents() private method

private ReleaseEvents ( ) : void
return void
        private void ReleaseEvents()
        {
            Debug.Assert((_state & LockStates.CachingEvents) == LockStates.CachingEvents);

            // Save events
            AutoResetEvent writerEvent = _writerEvent;
            _writerEvent = null;
            ManualResetEventSlim readerEvent = _readerEvent;
            _readerEvent = null;

            // Allow readers and writers to continue
            Interlocked.Add(ref _state, -LockStates.CachingEvents);

            // Cache events
            // TODO: (old) Disposing events for now. What is needed is an event cache to which the events are released.
            writerEvent?.Dispose();
            readerEvent?.Dispose();
        }