public void increaseUsage(long value) {
        if (value == 0) {
            return;
        }

        usageLock.writeLock().lock();
        try {
            usage += value;
            setPercentUsage(caclPercentUsage());
        } finally {
            usageLock.writeLock().unlock();
        }

        if (parent != null) {
            parent.increaseUsage(value);
        }
    }
@Test
    public final void testPercentUsageNeedsNoThread() {    
        int activeThreadCount = Thread.activeCount();
        underTest.setLimit(10);
        underTest.start();
        underTest.increaseUsage(1);
        assertEquals("usage is correct", 10, underTest.getPercentUsage());
        assertEquals("no new thread created without listener or callback",activeThreadCount, Thread.activeCount());
    }