'Call ``upload()`` after :py:func:`adding <CommandSequence.add>` or :py:func:`clearing <CommandSequence.clear>` mission commands.
After the return from ``upload()`` any writes are guaranteed to have completed (or thrown an
exception) and future reads will see their effects.'

def upload(self):

    if self._vehicle._wpts_dirty:
        self._vehicle._master.waypoint_clear_all_send()
        if (self._vehicle._wploader.count() > 0):
            self._vehicle._wp_uploaded = ([False] * self._vehicle._wploader.count())
            self._vehicle._master.waypoint_count_send(self._vehicle._wploader.count())
            while (False in self._vehicle._wp_uploaded):
                time.sleep(0.1)
            self._vehicle._wp_uploaded = None
        self._vehicle._wpts_dirty = False
