On Sat, Oct 17, 2015 at 11:37 AM, Alexander Holler <holler@xxxxxxxxxxxxx> wrote:
Otherwise it's impossible to call initcalls in parallel. I've seen a stable
topological sort somewhere, but whenever you want to parallelize the
initcalls, the stable ordering would be gone anyway. So I've decided not to
look further at a stable topological sort.
So five seconds of googling gave me freely usable source code for a
stable topological sort, that also has a nice reported added
advantage:
"An interesting property of a stable topological sort is that cyclic
dependencies are tolerated and resolved according to original order of
elements in sequence. This is a desirable feature for many
applications because it allows to sort any sequence with any
imaginable dependencies between the elements"
which seems to be *exactly* what you'd want, especially considering
that right now your patches add extra "no-dependency" markers exactly
because of the cyclical problem.
I think it was the #2 hit on google for "stable topological sort". I
didn't look closely at the source code, but it was not big.
And no, since we don't actually want to parallelize the initcalls
anyway (I had this discussion with you just a month ago), your
objections seem even more questionable. We have separate machinery for
"do this asynchronously", and we want to _keep_ that separate.