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.