@Override
    public int drainPermits() {
        return get(drainPermitsAsync());
    }
@Test
    public void testDrainPermits() throws InterruptedException {
        RSemaphore s = redisson.getSemaphore("test");
        assertThat(s.drainPermits()).isZero();

        s.trySetPermits(10);
        s.acquire(3);

        assertThat(s.drainPermits()).isEqualTo(7);
        assertThat(s.availablePermits()).isEqualTo(0);
    }