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.
>

Reply via email to