I have an ISR that updates a multibyte variable (yes, it's declared as volatile). When I access it out of the ISR, I've discovered that it's necessary to wrap the access in a cli();...sei(); block. Sort of a "duh" moment for me. But the question now is this: will interrupts that are triggered during that time be deferred until sei(); is executed and happen immediately thereafter, or will they simply be ignored and skipped? I'd like to believe they were deferred, but it'd be nice to know for sure.
If it matters, the interrupt for this particular case is the timer 0 CTC compare interrupt, but I'd be interested to know if the answer is different for different interrupts. The device is a Tiny84, but, again, I'd be interested to know where the answer changes.