[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