code: def attempt_advance(self, blocksize, timeout=10):
          
          if self.force_update_cache:
              self.update_cache()
  
          try:
              if self.increment_update_cache:
                  self.update_cache_by_increment(blocksize)
  
              return DataBuffer.advance(self, blocksize)
  
          except RuntimeError:
              if lal.GPSTimeNow() > timeout + self.raw_buffer.end_time:
                  # The frame is not there and it should be by now, so we give up
                  # and treat it as zeros
                  DataBuffer.null_advance(self, blocksize)
                  return None
              else:
                  # I am too early to give up on this frame, so we should try again
                  time.sleep(1)
                  return self.attempt_advance(blocksize, timeout=timeout)
docs: Attempt to advance the frame buffer. Retry upon failure, except
          if the frame file is beyond the timeout limit.
  
          Parameters
          ----------
          blocksize: int
              The number of seconds to attempt to read from the channel
          timeout: {int, 10}, Optional
              Number of seconds before giving up on reading a frame
  
          Returns
          -------
          data: TimeSeries
              TimeSeries containg 'blocksize' seconds of frame data