[Swift-devel] problems with external dependencies

Ben Clifford benc at hawaga.org.uk
Sun Mar 22 16:47:45 CDT 2009


As far as I can tell from a brief poke around, this is what is happening 
for you:

Compound procedures do not themselves wait for their input parameters 
to all be ready to use. instead, they start trying to run all component 
pieces.

If some data necessary for some component piece is not ready yet, that 
component piece will wait, so the compound procedure doesn't need to (and 
indeed shouldn't, because that reduces potential parallelism in some 
cases)

You say this:

analyseDatabase(external i) {                                                   
  trace("i am analyseDatabase");                                                
}   

The trace call does not have any need to wait for i to be ready. So it 
doesn't wait for i to be ready.

If you say this:
                                                                                
analyseDatabase(external i) {
  trace("i am analyseDatabase", i);
}

then the trace call must wait for i to be ready (and fortuitously in the 
present implementation doesn't explode even though i cannot be 
meaningfully traced).

With that change, you'll see the behaviour you want.

-- 




More information about the Swift-devel mailing list