@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
    void testPollWhenTimeoutWithNull() throws InterruptedException {
        MemoryLimitedLinkedBlockingQueue<Runnable> queue = new MemoryLimitedLinkedBlockingQueue<>(instrumentation);
        Runnable runnable = queue.poll(1, TimeUnit.SECONDS);
        assertNull(runnable);
    }