As higher optimization might actually schedule a jump to self while waiting for timer interrupts this is a more robust implementation in that sense