* are idle-spinning, we must allow interrupts, otherwise no
* process will ever wake up.
*
+ * During idle-spinning, can occur an interrupt, it may be able to
+ * modify \p ProcReadyList. To ensure that compiler reload this
+ * variable every while cycle we call CPU_MEMORY_BARRIER.
+ * The memory barrier ensure that all variables used in this context
+ * are reloaded.
* \todo If there was a way to write sig_wait() so that it does not
* disable interrupts while waiting, there would not be any
* reason to do this.
*/
IRQ_ENABLE;
CPU_IDLE;
+ MEMORY_BARRIER;
IRQ_DISABLE;
}
IRQ_RESTORE(flags);