[DGD]Inherit_Program called twice?

Kevin N. Carpenter kevinc at monrou.com
Thu Mar 23 06:30:03 CET 2000


I have a stripped down mudlib I'm using to develop my object manager and
have just spent the last hour trying to figure something out.  It appears
that the driver function "inherit_program" is being called twice during an
object compilation.  I highly suspect this is something in my code, because
that doesn't make any sense, but I sure can't find it.  Only 4 objects are
involved: The driver, inheritable auto, object user, and inheritable by user
userbase object.

The driver object forces a compile of the auto object.
The driver object forces a compile of the user object.
The user object inherits a file called userbase which forces a call to the
driver function inherit_program().
The inherit_program() forces a compile of the userbase object.
That compile finished, along with some book keeping.
** Then, to my surprise, it appears that inherit_program() is called in the
driver a second time for the same file, user, for the same program,
userbase. **
Since userbase is already compiled, this finishes quickly, but it still
seems odd.
I scanned all my code, it definitely DOES NOT call inherit_program directly.

Any ideas?  This is running under Redhat Linux 6.1 on an Dual Processor
server.

The trace below contains both function call traces and some object
management traces.

System Initializing.
DGD Version: 1.1.87
DRIVER (initialize): Compiling /kernel/lib/auto
DRIVER (compile_object): file=/kernel/lib/auto
DRIVER (compile_object): Initial compilation.
DRIVER (compile_object): /kernel/lib/auto compile complete, object count now
2
DRIVER (set): Setting 'next_obj' to /kernel/lib/auto
/kernel/lib/auto (set): setting 'prev_obj' to /kernel/sys/driver
DRIVER (compile_object): Last object now /kernel/lib/auto

DRIVER (initialize): Compiling /kernel/obj/user
DRIVER (compile_object): file=/kernel/obj/user
DRIVER (compile_object): Initial compilation.
DRIVER (inherit_program): file=/kernel/obj/user program=/kernel/lib/userbase
priv=0
DRIVER (compile_object): file=/kernel/lib/userbase
DRIVER (compile_object): Initial compilation.
DRIVER (compile_object): /kernel/lib/userbase compile complete, object count
now 3
/kernel/lib/auto (set): setting 'next_obj' to /kernel/lib/userbase
/kernel/lib/userbase (set): setting 'prev_obj' to /kernel/lib/auto
DRIVER (compile_object): Last object now /kernel/lib/userbase
DRIVER (compile_object): telling AutoObj about /kernel/lib/userbase
inheriting it.
/kernel/lib/auto (add_inherit): /kernel/lib/auto inherited by
/kernel/lib/userbase
/kernel/lib/auto (set): setting 'inherit_list' to MAPPING

DRIVER (inherit_program): telling /kernel/lib/userbase it was inherited by
/kernel/obj/user
/kernel/lib/userbase (add_inherit): /kernel/lib/userbase inherited by
/kernel/obj/user
/kernel/lib/userbase (set): setting 'inherit_list' to MAPPING
DRIVER (inherit_program): file=/kernel/obj/user program=/kernel/lib/userbase
priv=0
DRIVER (inherit_program): telling /kernel/lib/userbase it was inherited by
/kernel/obj/user
/kernel/lib/userbase (add_inherit): /kernel/lib/userbase inherited by
/kernel/obj/user
/kernel/lib/userbase (set): setting 'inherit_list' to MAPPING
DRIVER (compile_object): /kernel/obj/user compile complete, object count now
4
/kernel/lib/userbase (set): setting 'next_obj' to /kernel/obj/user
/kernel/obj/user (set): setting 'user_name' to Unknown
/kernel/obj/user (set): setting 'prev_obj' to /kernel/lib/userbase
DRIVER (compile_object): Last object now /kernel/obj/user
DRIVER (compile_object): telling AutoObj about /kernel/obj/user inheriting
it.
/kernel/lib/auto (add_inherit): /kernel/lib/auto inherited by
/kernel/obj/user
/kernel/lib/auto (set): setting 'inherit_list' to MAPPING

Kevin C.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 2712 bytes
Desc: not available
URL: <https://mail.dworkin.nl/pipermail/dgd/attachments/20000322/2ffc7723/attachment.bin>


More information about the DGD mailing list