Thanks for the review, Arun. Good points.
what happens if the collection is modified in between..
The two possible modifications are adding/removing a child queue. Adding a child queue to the end of the list doesn't affect container assignment. Removing a child queue affects container assignment, but that is a good thing.
We should probably add a comment to that effect so we don't forget this in the future.
instead of using a List and sorting it everytime, we could use a Sorted Bag (MultiSet) ?
One issue with using a sorted list is the sorting happens on addition/removal. FSQueues already in the list also change affecting the "order". May be, we could remove and re-insert the queue if anything changes, but that is a much bigger change and needs to be carefully evaluated for performance.