code: @Override
      public void close() {
          //at the moment the only thing that might need to happen is to stop the timeout...
          //however, if execution has completed normally and as designed, the timeout will already be stopped
          //one day there might be more things that need closing
          if (this.timeout != null) {
              this.timeout.stop();
          }
          metricRecorder.recordTimeoutExecutionTime(System.nanoTime() - startTime);
          this.closed = true;
      }
docs: {@inheritDoc}