Add a concept of "in progress" to queues.

Review Request #891 — Created June 11, 2009 and submitted


Navi (deprecated)


Add a concept of "in progress" to queues.

This change adds a concept of "in progress" to queues, allowing us to
call start() multiple times without running the same queue multiple
times, which would just cause problems. Now we can call start() all we want,
but the queue will stay in sync.

Note that calling next() multiple times will still cause the queue to be
processed multiple times, out of order, but that's less of a problem.
next() should only be called from a task in queue that is ending.
Tested with the corresponding Review Board change, and made sure the existing queues still function as expected.
  1. Looks reasonable, but can you add some stuff to the comment for next() explaining the restrictions on calling it?
    1. Can do. Thanks for the quick review.