#[unsafe(no_mangle)]pub unsafe extern "C" fn msime_engine_set_log_callback(
callback: msime_engine_log_callback,
user_data: *mut c_void,
) -> i32Expand description
ABI 1.1 起。把引擎的警告日志交给 callback,callback 为 NULL 时回到缺省:写到标准错误,每行前缀 msime: 。日志是进程级的:所有会话和库的后台线程记的都交给它,再注册一次就换掉上一个。
回调可能在任何线程上被调用,也可能在几个线程上同时被调用,要自己处理并发;要尽快返回,不要在里面调这个库的任何函数(在回调里调本函数返回 MSIME_ENGINE_BUSY,回调期间同一线程上再记的日志被丢掉)。回调不能抛出 C++ 异常或 longjmp 出去。
本函数返回之后,旧回调没有还在执行的调用,以后也不会再被调用,旧的 user_data 可以释放;新回调在注册期间要一直可调,user_data 一直有效,直到用别的回调或 NULL 换掉它。进程退出前不必换回缺省。
§Safety
callback 是 NULL,或者在它被换掉之前一直可以在任何线程上以 user_data 调用的函数。