Exemplo n.º 1
0
 public void RealClose()
 {
     _lock.AcquireReaderLock();
     try
     {
         if (!IsClosing)
         {
             return;
         }
     }
     finally
     {
         _lock.ReleaseReaderLock();
     }
     try
     {
         _lock.AcquireWriterLock();
         if (_buffer != null)
         {
             _buffer.Dispose();
             _buffer = null;
         }
         if (_pendingMessages != null)
         {
             _pendingMessages.Clear();
             _pendingMessages = null;
         }
         _rtmptServer.RemoveConnection(this.ConnectionId);
     }
     finally
     {
         _lock.ReleaseWriterLock();
     }
     base.Close();
     _lock.AcquireWriterLock();
     try
     {
         SetIsClosed(true);
         SetIsClosing(false);
     }
     finally
     {
         _lock.ReleaseWriterLock();
     }
 }