Skip to content

Commit 54170a8

Browse files
committed
Safety check empty eject queue before clearing double eject
1 parent 2a550c8 commit 54170a8

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

mpf/devices/ball_device/outgoing_balls_handler.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -433,12 +433,11 @@ async def _eject_ball(self, eject_request: OutgoingBall, eject_try: int) -> bool
433433
# Post that the ball is lost
434434
await self.ball_device.lost_idle_ball()
435435
# Cancel the eject queue for the lost ball
436-
self.info_log("How many ejects are requested? %s", self.ball_device.requested_balls)
437-
self.info_log("Playfield ejects requested? %s", self.machine.playfields.playfield.num_balls_requested)
438436
for _ in range(0, old_balls - new_balls):
439-
self.info_log("Cancelling one queued request")
440-
self._eject_queue.get_nowait()
441-
self._eject_queue.task_done()
437+
self.info_log("Cancelling a queued eject request")
438+
if not self._eject_queue.empty():
439+
self._eject_queue.get_nowait()
440+
self._eject_queue.task_done()
442441
self.info_log("Necessary queue requests are completed. Updating ball count to %s." % new_balls)
443442
self.ball_device.ball_count_handler._set_ball_count(new_balls)
444443

0 commit comments

Comments
 (0)