I don't think GMS could lose access to a memory allocation in the middle of a step. It would require some other process to request it, but since GMS process is being presently executed, I'm not sure that could happen. Don't know how multithreading would affect this. Depends on how the OS handles requests for and reservations of the memory and what gets priority and what gets its request denied and on what grounds. But I think a reasonable assumption is a program can't lose its reservations when it is executing, as it would create a host of problems, and no problems are created by not doing this. It seems it would be wiser to wait for a process to finish its cycle before mucking about with its memory reservations.