do not use std::function directly
non-blocking NannyEvent destructor