threadsafe general listening