Why not?  I don't see why the GC couldn't be put on hold for a period of time (albeit short) while mission critical functionality occurs.  If you are willing to plan ahead so that the code you execute during this process is there solely to swap out buffers, then the GC can do what it wants the rest of the time.  I could see some kind of construct whereby you could forcefully postpone a GC for long enough to do the work, but if you take too long, the GC would start anyway.  Your job as a dev is to get your work done within the postponement period.