The hang stopped with revision r629709 - still investigating why. On Fri, Feb 22, 2008 at 2:53 AM, Kevin Brown <[EMAIL PROTECTED]> wrote:
> This gadget does not hang for me: > > http://www.google.com/ig/modules/hello.xml > > Odd... > > On Fri, Feb 22, 2008 at 1:58 AM, Phillip Rhodes <[EMAIL PROTECTED] > > > wrote: > > > Ok, I lied, I couldn't get to sleep anyway, so I spent some > > more time looking at this. > > > > And I think I understand this a little better now. I wasn't paying > > attention before... after the EnqueueFeaturesTask finishes and we > > do the take() on the CompletionService object, we loop back up > > to the top of that do block again, and then find outselves sitting here: > > > > > > // ... snip > > > > for (WorkflowJob candidate : wc.jobsToRun) > > { > > if (candidate.ready(wc.depsDone)) > > { > > > > > > runThisCycle.add(candidate); > > > > > > } > > } > > > > > > The jobs in wc.jobsToRun are now the ones added by the > > EnqueueFeaturesTask if I'm understanding this correctly. > > Anyway, this loop iterates 5 or 6 times.. and here's where > > it gets weird... using the debugger, it looks for all the world > > like each time we *do* execute this line: > > > > runThisCycle.add(candidate); > > > > But... after that loop finishes, runThisCycle actually has size = 0. > > > > So this loop: > > > > // Fire off ready jobs and remove from jobsToRun list > > for (WorkflowJob runJob : runThisCycle) { > > > > processor.submit(runJob.task); > > > > jobsSubmitted++; > > > > wc.jobsToRun.remove(runJob); > > } > > > > > > never executes and never does a submit(), since it has nothing > > to submit. And that's why we block forever on the take() call, because > > there just aren't any other jobs to run. > > > > It seems like the question now is, why don't those other jobs get added > > to runThisCycle? > > > > > > TTYL, > > > > > > -- > > Phillip Rhodes > > Chief Architect - OpenQabal > > https://openqabal.dev.java.net > > LinkedIn: http://www.linkedin.com/in/philliprhodes > > > > > > -- > ~Kevin > > If you received this email by mistake, please delete it, cancel your mail > account, destroy your hard drive, silence any witnesses, and burn down the > building that you're in. >

