set.Wait() now just returns a channel. set.Watch() lets you specify one-off watch option, client.Services() now takes an explicit timeout
simplified mutexes. added initial RegisterWithSet, which required addition of Ignore method. refactored tests to be separate tests, show discoverd output if DEBUG env var is set, cleanup up error handling with an assert function, and a simpler setup/cleanup system
test for RegisterWithSet
set.Services() always returns services sorted by age, so set.Services()[0] is always leader. implemented new behavior for set.Leader() so it returns the leader service as it changes
added RegisterAndStandby and made sure RegisterWithSet continues to give the right leader even when its the service registered. changed ignores on set to concept of self, which is only used for RegisterWithSet (and therefore RegisterAndStandby)
fixing some of the easier issues from the review
made explicit function to determine leader and renamed Leader to Leaders
put mutexes behind unexported member
fixing races. jonathan is my race detector. mine is broken.
cleaned up Wait/Watch api instead of adding another Updates method. also fixes the race with bringCurrent
UnregisterAll convenience
adding default client and top-level calls. renamed ServiceSet function to NewServiceSet to avoid collision with type. other fixes from review
race and review fixes from review and race detection
lock it up
Merge pull request #4 from flynn/new-leader-api

New leader api