> >I need to have mutual dependencies between several of my 
> components.  That
> >is, ComponentA depends on ComponentB and ComponentB depends 
> on ComponentA.
> 
> hmm - is it possible to refactor this into a third Block? The 
> reason I ask
> is because if mutual dependencies exist one of them will be 
> passed to the
> other block in a uninitialized state which could cause subtle 
> and serious
> problems.

I dunno.  Think of my server as a queue/proxy.  It has a block for incoming
connections (NetIn), a block for outgoing connections (NetOut), and a block
for processing/queueing the incoming packets (Queue).

Incoming packets (NetIn) must be placed in the Queue and sent on (NetOut).
A response may come back in via NetOut, which needs to be communicated back
to Queue (but not NetIn).  So, my dependency graph matches the flow of data:

        NetIn --> Queue <--> NetOut

I suppose I could consolidate NetIn, NetOut, and the logic portions of Queue
into one block, Net:

        Net --> Queue

> >Specifying this relationship in assembly.xml causes BlockDAG 
> to traverse
> >dependencies forever.
> 
> ug - thats a bug ... ;)

Glad I could be of help!  ;-)

> >Attached is a quick fix that I'm using to get around this 
> (it keeps track of
> >already-traversed dependencies in a Hashtable).  Might this 
> cause other
> >problems?  I don't yet have a complete understanding of Phoenix...
> 
> I may try to solve the problem a different way - I was 
> thinking I would
> throw an exception when a circular reference is discovered. 
> Also I may pass
> in hashtable down chain as that way multiple threads could be 
> traversing
> BlockDAG at the same time etc. Thoughts?

Huh?!  Isn't BlockDAG run only once for the life of a server?

-John

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to