Services

This is an attempt to make custom AsyncMultiService usable inside an advanced master.cfg or a buildbot plugin.

You can start review by looking at the doc in the end of the patch. I hope this explains the idea.

Is there any reason to place the mixin first? Generally it hides a design error (super(DBConnector, self) should be the real base class, AsyncMultiService). Or the mixin isn't a mixin (a mixin should be completely orthogonal to the other class, and no hides/overrides methods, in which can, inheritance it best suited)