You would have to check the guard after process and throw away the result if guard changed.
Edit: I think something similar is used to avoid time related system calls, the values are just mapped into the application address space and the kernel updates time and guard values concurrent to the application.