coreos/fleet — pull request #850 by jonboulle (2014-09-02 18:00:14+00:00)
Title: agent: change unit state publishing model

This establishes N goroutines (I suggest 5, but it could be 1 to keep closer
to the existing behaviour) which are solely responsible for publishing to the
Registry. These goroutines are select()ing on a queue channel, where each item
(string) indicates that they should publish a UnitState corresponding to that
name.

They retrieve this UnitState from a name->state mapping which only ever
contains the _latest_ UnitState for a particular name.

- The former publishAll() will now simply trigger a publishing of every
UnitState in the cache and update every UnitState in the mapping
- Any updates from the UnitStateGenerator will result in a trigger event
and update the latest UnitState in the mapping