code: def FirstEventTimestamp(self):
      
      if self._first_event_timestamp is not None:
        return self._first_event_timestamp
      with self._generator_mutex:
        try:
          event = next(self._generator.Load())
          self._ProcessEvent(event)
          return self._first_event_timestamp
  
        except StopIteration:
          raise ValueError('No event timestamp could be found')
docs: Returns the timestamp in seconds of the first event.
  
      If the first event has been loaded (either by this method or by `Reload`,
      this returns immediately. Otherwise, it will load in the first event. Note
      that this means that calling `Reload` will cause this to block until
      `Reload` has finished.
  
      Returns:
        The timestamp in seconds of the first event that was loaded.
  
      Raises:
        ValueError: If no events have been loaded and there were no events found
        on disk.