docs: public String registerBlockListener(BlockingQueue<QueuedBlockEvent> blockEventQueue, long timeout, TimeUnit timeUnit) throws InvalidArgumentException {
  
          if (shutdown) {
              throw new InvalidArgumentException(format("Channel %s has been shutdown.", name));
          }
  
          if (null == blockEventQueue) {
              throw new InvalidArgumentException("BlockEventQueue parameter is null.");
          }
  
          if (timeout < 0L) {
              throw new InvalidArgumentException(format("Timeout parameter must be greater than 0 not %d", timeout));
          }
  
          if (null == timeUnit) {
              throw new InvalidArgumentException("TimeUnit parameter must not be null.");
          }
  
          String handle = new BL(blockEventQueue, timeout, timeUnit).getHandle();
  
          logger.trace(format("Register QueuedBlockEvent listener %s", handle));
  
          return handle;
  
      }