Block a user
Add tracker interface and tests
Why not call it.StopIterator()? I am always nervous about code that requires a precise locking scheme being duplicated multiple places.
Add tracker interface and tests
Is it explicit anywhere that you must call CloseAndSave in order to close the channel, set running to false, etc?
Add tracker package, update and simplify
Could you elaborate on this change a bit? I like the simplification, but I'm not sure I followed what allows for it.