From 0d4ff0c48b7dfe6909f4fe73db45aadd3e3c8aca Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 5 Jul 2016 16:12:31 -0700 Subject: [PATCH] Allow the queue to be cleared from within commands --- Marlin/Marlin_main.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 4409a36df1..100d56dd49 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -990,8 +990,11 @@ void loop() { #endif // SDSUPPORT - commands_in_queue--; - cmd_queue_index_r = (cmd_queue_index_r + 1) % BUFSIZE; + // The queue may be reset by a command handler or by code invoked by idle() within a handler + if (commands_in_queue) { + --commands_in_queue; + cmd_queue_index_r = (cmd_queue_index_r + 1) % BUFSIZE; + } } endstops.report_state(); idle();