@Override
    public E poll(final long timeout, final TimeUnit unit) throws InterruptedException {
        final E e = super.poll(timeout, unit);
        memoryLimiter.releaseInterruptibly(e, timeout, unit);
        return e;
    }
@Test
    public void testPoll() {
        MemoryLimitedLinkedBlockingQueue<Integer> queue = new MemoryLimitedLinkedBlockingQueue<>(instrumentation);
        Integer testObject = 0;
        queue.offer(testObject);
        assertEquals(testObject, queue.poll());
        assertEquals(0, queue.getCurrentMemory());
    }