我使用的是Linphone库,在销毁核心(linphone_core_unref)之后,我在linphone_core_iterate while循环上遇到了崩溃。以下是我的代码
func prepareToShutdown() {
iterateTimer = nil
iterateTimer?.invalidate()
shutdown()
}
func shutdown(){
NSLog("Shutdown..")
let proxy_cfg = linphone_core_get_default_proxy_config(lc); /* get default proxy config*/
linphone_proxy_config_edit(proxy_cfg); /*start editing proxy configuration*/
linphone_proxy_config_enable_register(proxy_cfg, 0); /*de-activate registration for this proxy config*/
linphone_proxy_config_done(proxy_cfg); /*initiate REGISTER with expire = 0*/
linphone_core_unref(lc);
}
@objc func iterate(){
if let lc = lc {
print("iterating")
linphone_core_iterate(lc); /* first iterate initiates registration */
}
}
func setTimer(){
iterateTimer = Timer.scheduledTimer(
timeInterval: 1.0, target: self, selector: #selector(iterate), userInfo: nil, repeats: true)
}这是崩溃截图

任何帮助都将不胜感激!
发布于 2019-05-22 13:39:30
对于这个问题,我有一个解决方案。我使用的是Intel NUC (甚至是不同的版本),它总是在使用System.AccessViolationException的时候崩溃。
对于Windows,解决方案是由于CPU过载而改变Thread.Sleep(20)睡眠时间,这会导致死锁。
https://stackoverflow.com/questions/53766677
复制相似问题