public void TestBlocking()
        {
            int rc = 0;
            var s  = new UnbufferedMemoryStream.UnbufferedMemoryStream();


            var t1 = Task.Run(() =>
            {
                s.ReadByte();
                if (Interlocked.Increment(ref rc) != 2)
                {
                    Assert.Fail();
                }
            });

            var t2 = Task.Run(async() =>
            {
                await Task.Delay(100);
                s.WriteByte(10);
                if (Interlocked.Increment(ref rc) != 1)
                {
                    Assert.Fail();
                }
            });


            Task.WaitAll(t1, t2);
            s.Dispose();
        }