All access to the callbacks should be threadsafe (i.e. they should lock).