public void ShouldNotBeAbleToPopFromAnEmptyBuffer(int size)
        {
            var    evt = new ManualResetEvent(false);
            Thread t   = new Thread(() =>
            {
                var buffer = new ConcurrentRingBufferImpl <Data>(size);
                buffer.Initialize(() => new Data(), false);
                var data = buffer.Pop();
                Assert.NotNull(data);
            });

            t.Start();

            if (evt.WaitOne(100))
            {
                Assert.False(true, "Thread managed to pop from an empty buffer");
            }
        }