Update function to call from a looping thread.
        Note : the interface is lazily constructed here
        :param timedelta: the time past since the last update call

def update(self, timedelta, *args, **kwargs):
        """
        Update function to call from a looping thread.
        Note : the interface is lazily constructed here
        :param timedelta: the time past since the last update call
        """

        # TODO move time management somewhere else...
        self.last_update += timedelta
        # if shutdown we want to bypass the update_interval check
        # if shutting_down:
        #     self.interface.update(shutting_down=shutting_down)
        #     return 0  # return 0 as success since we arrived here without exception
        # else
        if self.last_update > self.update_interval:
            self.last_update = 0
            self.interface.update()