let do_and_update_globals action file =
attach_detach_mode := true;
assert (!globinits = [] && !globals = [] && !globactions = []);
action file;
detach_globinits file;
detach_globals file;
detach_globactions ();
attach_detach_mode := false