Linphone linphone_core_iterate crash - PullRequest
       11

Linphone linphone_core_iterate crash

0 голосов
/ 13 декабря 2018

Я использую Linphone lib, и мне грозит сбой на линии linphone_core_iterate во время цикла после разрушения ядра (linphone_core_unref).Вот мой код

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)
}

А вот и скриншот аварии

Любая помощь будет высоко оценена!

1 Ответ

0 голосов
/ 22 мая 2019

У меня есть решение для этой проблемы.Я использовал Intel NUC (даже разные версии), и в этот момент он всегда падал с System.AccessViolationException.

Для Windows решение состоит в том, чтобы изменить время ожидания Thread.Sleep (20) из-за перегрузки процессора, что приводит к взаимоблокировке.

...