[DGD] A deadlock with inheritance or call_other

Noah Gibbs noah_gibbs at yahoo.com
Sat Apr 2 21:07:01 CEST 2005


--- Robert Forshaw <iouswuoibev at hotmail.com> wrote:
> The problem I am speaking of is when the compiling or cloning of an object 
> demands the prior compilation of another object.

  Are you referring to objects that inherit each other?  That is, are you
describing a circular inheritance structure?

  I know of no condition where an object 'A' requires another object 'B' to be
compiled for A to be compiled, except inheritance.

  You may need 'B' to already exist in order to call 'A' create() function
usefully.  In that case, compile both of them before calling A's create()
function.  Or compile both of them from each other's create() function, it
really doesn't matter.

  Basically, you're going to need to describe the nature of the deadlock more
before I understand why there's a problem.

  Or do you have a create() function that gets called automatically when the
object is compiled?  Some MUDlibs do that.  If so, that *would* cause a serious
problem.  Is that what you do?

> That latter object in turn 
> desires the prior compiling of the first object. For example, I have my 
> object daemon and that object daemon makes use of a "node_mapping" 
> lightweight object. However, the creation of any object demands that the 
> object daemon exist to do its part of the job.

  Ah...  Yes, the Object Daemon is a special case.  You should compile
everything the Object Daemon needs before activating it.  In the Kernel Library
you have to explicitly set an object to be the Object Daemon, so I compile the
specific few files it requires and *then* register it to manage objects.  If
you're not using the Kernel you'll want to do something similar where the
ObjectD doesn't do any active managing (and thus, no creating that LWO) until
the LWO has been successfully compiled.

  Bringing an ObjectD up on bootup is definitely a special case.  If you check
the Phantasmal ObjectD, you'll see that it can be a quite *extensive* special
case.





		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - Helps protect you from nasty viruses. 
http://promotions.yahoo.com/new_mail



More information about the DGD mailing list