void ITraceEnlightenment.AsyncReaderWriterLock_LockReleased(AsyncReaderWriterLock rwLock, AsyncReaderWriterLockLockType lockType)
 {
     if (IsEnabled(EventLevel.Verbose, Keywords.AsyncSynchronization))
     {
         AsyncReaderWriterLockLockReleased(rwLock.Id, Task.CurrentId ?? 0, lockType);
     }
 }
            void ITraceEnlightenment.AsyncReaderWriterLock_TrackLock(AsyncReaderWriterLock rwLock, AsyncReaderWriterLockLockType lockType, Task waitTask)
            {
                if (!IsEnabled(EventLevel.Verbose, Keywords.AsyncSynchronization))
                {
                    return;
                }
                var rwLockId   = rwLock.Id;
                var waitTaskId = waitTask.Id;

                AsyncReaderWriterLockLockBegin(rwLockId, Task.CurrentId ?? 0, lockType, waitTaskId);
                waitTask.ContinueWith(t => AsyncReaderWriterLockLockEnd(rwLockId, Task.CurrentId ?? 0, waitTaskId, t.IsCanceled), TaskContinuationOptions.ExecuteSynchronously);
            }
 public void AsyncReaderWriterLockLockReleased(int AsyncReaderWriterLockID, int OriginatingTaskID, AsyncReaderWriterLockLockType LockType)
 {
     WriteEvent(32, AsyncReaderWriterLockID, OriginatingTaskID, LockType);
 }
 public void AsyncReaderWriterLockLockBegin(int AsyncReaderWriterLockID, int OriginatingTaskID, AsyncReaderWriterLockLockType LockType, int WaitTaskID)
 {
     WriteEvent(30, AsyncReaderWriterLockID, OriginatingTaskID, LockType, WaitTaskID);
 }