[DGD] Upgrade management
Raymond Jennings
shentino at gmail.com
Fri Sep 25 05:30:54 CEST 2015
Using your advice I was able to rewrite my upgrade process. Thanks!
Basically it features building a list of anything that is new or changed in
the inheritance tree when an object is recompiled, and applies any patches
requested by those new inheritables or programs.
In the meantime the mud is frozen while the object and its clones are
marked with call_touch and added to a queue. Then the mud is released and
the background queue burns through the pending objects on a 0-callout,
which makes sure that the objects are all patched in a finite period of
time, but without stalling the mud.
When an object is recompiled, objectd freezes the mud, and 0-callouts
itself to get the new program in place, and then issues the obj->upgrade()
call after queuing the patches.
More information about the DGD
mailing list