These do not keep a count, so if a client tried to listen
from two unrelated pieces of code it would be unable
to cleanly unlisten. This is OK in our current design because
the SbtClient API keeps a client-side count and only listens
or unlistens one time on the transitions between 0 and 1 listener.
It does require client APIs to be smart about this, which
is probably fine.
These do not keep a count, so if a client tried to listen from two unrelated pieces of code it would be unable to cleanly unlisten. This is OK in our current design because the SbtClient API keeps a client-side count and only listens or unlistens one time on the transitions between 0 and 1 listener. It does require client APIs to be smart about this, which is probably fine.