I don't like `list.List` at all. It is racy to iterate over it even under lock(because of *Element type) and you iterating over it without lock :) Why not just `map[JSONMessageListener]struct{}`?