Disables and enables context switches at the level of Racket threads. Calls to start-atomic and end-atomic can be nested.
Using call-as-atomic is somewhat safer, in that call-as-atomic correctly catches exceptions and re-raises them after exiting atomic mode. For simple uses, however, start-atomic and end-atomic are faster.
Calls thunk in atomic mode. If thunk raises and exception, the exception is caught and re-raised after exiting atomic mode.
Within the dynamic extent of a call-as-atomic, calls thunk in non-atomic mode. Beware that the current thread maybe suspended or terminated by other threads during thunk, in which case the call never returns.