code: def _do_change_status(self, status, force=False):
          
          self.system.worker_thread.put(DummyStatusWorkerTask(self._request_status_change_in_queue, status, force=force))
docs: This function is called by
             - set_status
             - _update_program_stack if active program is being changed
               - thia may be launched by sensor status change.
               status lock is necessary because these happen from different
               threads.
  
          This does not directly change status, but adds change request
          to queue.