From what I can tell you do three things;
A) you can define a critical section which must run atomically in respect to the CPU core moves
B) if the critical section is interrupted you can define a callback or restart the section (meaning the section can be safely repeated)
C) you can define a single operation to commit (ie, updating a pointer)
You can certainly build a "retry on failure" method using this, CPU moves are rare so it's unlikely to fail the second time.