protected override void Dispose(bool disposing)
 {
     base.Dispose(disposing);
     if (disposing)
     {
         TaskCompletionSource <int> p = _readCompletionSource;
         if (p is object)
         {
             _readCompletionSource = null;
             _ = p.TrySetResult(0);
         }
         _ownedInputBuffer.SafeRelease();
         _ownedInputBuffer = null;
     }
 }