code: @Override
      public boolean suspend(long timeOut, TimeUnit timeUnit, TimeoutHandler timeoutHandler) {
          // TODO: If already suspended should return false according to documentation
          // Store the timeout handler
          this.timeoutHandler = timeoutHandler;
  
          // Cancel any existing timer
          if (suspendTimerId != 0) {
              vertx.cancelTimer(suspendTimerId);
              suspendTimerId = 0;
          }
  
          // If timeout <= 0, then it suspends indefinitely
          if (timeOut <= 0) {
              return true;
          }
  
          // Get milliseconds
          long ms = timeUnit.toMillis(timeOut);
  
          // Schedule timeout on the event loop
          this.suspendTimerId = vertx.setTimer(ms, id -> {
              if (id == suspendTimerId) {
                  VertxResponseWriter.this.timeoutHandler.onTimeout(VertxResponseWriter.this);
              }
          });
  
          return true;
  
      }
docs: {@inheritDoc}