code: @Override
      public void execute(final Runnable command) {
          try {
              semaphore.acquire();
          } 
          catch (InterruptedException ex) {
              throw new RuntimeException(ex);
          }
          
          try {
              wrappedExecutor.execute(() -> {
                  try {
                      command.run();
                  } 
                  finally {
                      semaphore.release();
                  }
              });
          } 
          catch (RejectedExecutionException ex) {
              semaphore.release();
              throw new RuntimeException(ex);
          }
      }
docs: {@inheritDoc}