From 06a96473b65f45ab6ded81de210fb6721758d6c4 Mon Sep 17 00:00:00 2001 From: Michael Moon Date: Fri, 17 Jan 2014 11:55:36 +1100 Subject: [PATCH] Ensure Conveyor::on_block_end gets called last --- src/modules/robot/Block.cpp | 3 +++ src/modules/robot/Conveyor.cpp | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/robot/Block.cpp b/src/modules/robot/Block.cpp index aa4fa517..03f00ecd 100644 --- a/src/modules/robot/Block.cpp +++ b/src/modules/robot/Block.cpp @@ -236,4 +236,7 @@ void Block::release() { if (--this->times_taken <= 0) THEKERNEL->call_event(ON_BLOCK_END, this); + + // ensure conveyor gets called last + THEKERNEL->conveyor->on_block_end(this); } diff --git a/src/modules/robot/Conveyor.cpp b/src/modules/robot/Conveyor.cpp index 8d3be002..2373f607 100644 --- a/src/modules/robot/Conveyor.cpp +++ b/src/modules/robot/Conveyor.cpp @@ -28,7 +28,6 @@ Conveyor::Conveyor(){ void Conveyor::on_module_loaded(){ register_for_event(ON_IDLE); - register_for_event(ON_BLOCK_END); } // Delete blocks here, because they can't be deleted in interrupt context ( see Block.cpp:release ) -- 2.20.1