Why a “barrier()” is enough for disabling or enabling the preemption?