OpenHarmony开发者论坛

标题: SoftBusDeviceConnectionListener::OnDeviceOffline函数中exit(0)导致的问题 [打印本页]

作者: pidan_2023    时间: 2024-3-9 19:16
标题: SoftBusDeviceConnectionListener::OnDeviceOffline函数中exit(0)导致的问题
【问题描述】
问题现象和发生的背景
security_access_token\services\tokensyncmanager\src\remote\soft_bus_device_connection_listener.cpp文件

SoftBusDeviceConnectionListener::OnDeviceOffline函数中发现设备列表为空就直接exit(0),概率性导致子线程crash的问题。

在实际环境上测试时,有时会出现还在运行的子线程调用主线程的回调函数时,出现crash。

例如:
子线程dsoftbus的ClientDestroySession函数,会调用主线程的回调函数SoftBusSocketListener::OnShutdown
        if (destroyNode->OnSessionClosed != NULL) {
            destroyNode->OnSessionClosed(id);
        } else if (destroyNode->OnShutdown != NULL) {
            destroyNode->OnShutdown(id, reason);
        }

但主线程已经exit,主线程的数据已经销毁,再调用SoftBusSocketListener::OnShutdown时就会crash。


请问有什么修改方案?


作者: s_hao    时间: 2024-3-27 09:29
更新代码重新试一下,已知的问题并修复了




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5