[DGD] object manager (updated)
pete at ana.sk
pete at ana.sk
Sun May 5 09:16:09 CEST 2002
Hi ppl.
Ok i think my object manager is working well now,
so if anyone is interested,
http://www.ana.sk/~pete/mud/objectd.c. It should
run well with stock dgd (1.2.44 is version im using),
though using status patch (O_UPGRADING
member of status) will report object-is-already-being-
upgraded error before it tries to do upgrade in atomic
code.
Interface:
int upgrade_object(mixed obj_name)
-return true if successful, false (rarely) or error
otherwise
mapping query_libs()
- return ([ lib_name : ({ array of object names
inheriting this lib, array of inherited lib names }) ])
mapping query_objects()
- return ([ master_name : ({ array of clone numbers
for master, array of inherited lib names }) ])
Limits:
- number of library objects <= max array size
- number of master objects <= max array size
- number of clones for each master object <= max
array size
- number of destructed but not yet removed
programs <= max array size
- cannot destruct master object if clones exist
- it tries to recompile everything except driver and
auto object at startup, which must succeed
Limits if upgrade_object:
- all upgrade is done within one atomic function with
no tick limit. that means it either succeeds or fails
completely. no callouts are used
- numer of all upgraded libs + master objects <=
max array size
- all library objects that inherited upgraded object
(directly or indirectly) are destructed, but not
recompiled by objectd
- all master objects that inherited upgraded object
(directly or indirectly) are recompiled after
destruction of libs
_________________________________________________________________
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list