Did The FreeRTOS is "Hard RealTime", how to understand the "RT" feature of FreeRTOS?

tugouxp wrote on Monday, September 23, 2019:

Hi:
one key feature of RT is the definition of “disble interrupt time” feature on measure the RT feature of
RTOS.

i have saw the implemation of FreeRTOS in some api :
static void prvUnlockQueue( Queue_t * const pxQueue )
{

taskENTER_CRITICAL();
while(cTxLock > queueLOCKED_UNMODIFIED)
{

 }
  taskEXIT_CRITICAL();

}

So it seems the while is enclosed by the disable and enable interrupt, but it seems the duration of while execute
is not definite, which make the duration of close interruupt not definition.

so, how to under stand this, how to make the “real rt” happen?

thanks for your kinldy direct.!

rtel wrote on Monday, September 23, 2019:

We always attempt not to do anything non-deterministic with interrupts disabled, but you are right in the code you highlight breaks that rule. Remember that, at least on kernel ports that support interrupt nesting, only interrupts up to the application defined maximum system call interrupt priority are disabled in critical sections - higher priority interrupts remain enabled.