template <StateOptions>
struct StateSaver
Saves and restores the IRQ and preempt disable state corresponding to the given option.
Although this is mainly used internally by concurrent::ChainLockTransaction::UntilDone, there
are some instances where bare transactions need to be created. Define this publicly to support
those use cases.