If I call 'in_interrupt' function just before 'irq_exit()', It will still return non-zero value, because still it it in interrupt context.

note : there was no nesting of interrupt happened.
Is my understanding correct ?

another question is : in micro state accounting msa_finish_irq is called before irq_exit(); I think that is wrong.