uint8_t mp_free_run_buffer() // EMPTY current run buf & adv to next { mp_clear_buffer(mb.r); // clear it out (& reset replannable) // mb.r->buffer_state = MP_BUFFER_EMPTY; // redundant after the clear, above mb.r = mb.r->nx; // advance to next run buffer if (mb.r->buffer_state == MP_BUFFER_QUEUED) {// only if queued... mb.r->buffer_state = MP_BUFFER_PENDING; // pend next buffer } mb.buffers_available++; qr_request_queue_report(-1); // request a QR and add to the "removed buffers" count return ((mb.w == mb.r) ? true : false); // return true if the queue emptied }
void mp_free_run_buffer() // EMPTY current run buf & adv to next { mp_clear_buffer(mb.r); // clear it out (& reset replannable) // mb.r->buffer_state = MP_BUFFER_EMPTY; // redundant after the clear, above mb.r = mb.r->nx; // advance to next run buffer if (mb.r->buffer_state == MP_BUFFER_QUEUED) {// only if queued... mb.r->buffer_state = MP_BUFFER_PENDING; // pend next buffer } if (mb.w == mb.r) cm_cycle_end(); // end the cycle if the queue empties mb.buffers_available++; rpt_request_queue_report(-1); // add to the "removed buffers" count }