@@ -358,7 +358,8 @@ def _update(self):
358358
359359 :param robot: the robot being updated by this View Controller
360360 """
361- while not self ._close_event .is_set ():
361+ close_event = self ._close_event
362+ while close_event and not close_event .is_set ():
362363 try :
363364 input_intents = self ._input_intent_queue .get (True , timeout = 2 ) # type: RobotControlIntents
364365
@@ -383,6 +384,7 @@ def _update(self):
383384 self .robot .motors .set_head_motor (input_intents .head_speed , _return_future = True )
384385 except mp .queues .Empty :
385386 pass
387+ close_event = self ._close_event
386388
387389 def _on_robot_state_update (self , * _ ):
388390 """Called from SDK process whenever the robot state is updated (so i.e. every engine tick).
@@ -397,10 +399,12 @@ def _on_robot_state_update(self, *_):
397399 """
398400 from .opengl import opengl_vector
399401 world_frame = opengl_vector .WorldRenderFrame (self .robot )
400- try :
401- self ._world_frame_queue .put (world_frame , False )
402- except mp .queues .Full :
403- pass
402+ queue = self ._world_frame_queue
403+ if queue :
404+ try :
405+ queue .put (world_frame , False )
406+ except mp .queues .Full :
407+ pass
404408 # self._view_controller.update(self.robot) # TODO: <- sounds like this has something to do with keyboard input...
405409
406410 def _on_nav_map_update (self , _ , msg ):
@@ -414,7 +418,9 @@ def _on_nav_map_update(self, _, msg):
414418 We can safely capture any robot and world state here, and push to OpenGL
415419 (main) process via a multiprocessing queue.
416420 """
417- try :
418- self ._nav_map_queue .put (msg , False )
419- except mp .queues .Full :
420- pass
421+ queue = self ._nav_map_queue
422+ if queue :
423+ try :
424+ queue .put (msg , False )
425+ except mp .queues .Full :
426+ pass
0 commit comments