diff --git a/port/threadx/src/tx_thread_schedule.S b/port/threadx/src/tx_thread_schedule.S index 1169443..b029ad1 100644 --- a/port/threadx/src/tx_thread_schedule.S +++ b/port/threadx/src/tx_thread_schedule.S @@ -83,6 +83,7 @@ _tx_thread_schedule_loop: /* } while(_tx_thread_execute_ptr == TX_NULL); */ +scheduler_found_thread: /* Yes! We have a thread to execute. Lockout interrupts and transfer control to it. */ csrci mstatus, 0x08 // Lockout interrupts @@ -300,6 +301,7 @@ _tx_thread_synch_return: #else addi sp, sp, 16*REGBYTES // Recover stack frame #endif +synch_return_exit_label: ret // Return to thread /* } */ diff --git a/port/threadx_smp/src/tx_thread_schedule.S b/port/threadx_smp/src/tx_thread_schedule.S index 38f891d..f1d5bf6 100644 --- a/port/threadx_smp/src/tx_thread_schedule.S +++ b/port/threadx_smp/src/tx_thread_schedule.S @@ -99,6 +99,7 @@ _tx_thread_schedule_thread: /* } while(_tx_thread_execute_ptr == TX_NULL); */ +scheduler_found_thread: /* Publish the current thread pointer for this hart, then re-check the execute slot to avoid missing a concurrent execute-pointer update. */ @@ -327,6 +328,7 @@ _tx_thread_synch_return: #else addi sp, sp, 16*REGBYTES // Recover stack frame #endif +synch_return_exit_label: ret // Return to thread /* } */