docs: def _flush_range(self, buffer, start, end):
          """
          Flush a buffer to a range of the file.
  
          Meant to be used asynchronously, used to provides parallel flushing of
          file parts when applicable.
  
          Args:
              buffer (memoryview): Buffer content.
              start (int): Start of buffer position to flush.
              end (int): End of buffer position to flush.
          """
          # On first call, Get file size if exists
          with self._size_lock:
              if not self._size_synched:
                  self._size_synched = True
                  try:
                      self._size = self.raw._size
                  except (ObjectNotFoundError, UnsupportedOperation):
                      self._size = 0
  
          # It is not possible to flush a part if start > size:
          # If it is the case, wait that previous parts are flushed before
          # flushing this one
          while start > self._size:
              sleep(self._FLUSH_WAIT)
  
          # Flush buffer using RAW IO
          self._raw_flush(buffer, start, end)