Is the code below correct? After first return irq stay locked? ``` some_func() { int key = irq_lock(); if (...) return; ... irq_unlock(key); } ```