Use the _safe variant as a bsc_unregister_fd might be called from within the callback