• Lv0
    粉丝0

积分4 / 贡献0

提问8答案被采纳0文章0

作者动态

SoftBusDeviceConnectionListener::OnDeviceOffline函数中exit(0)导致的问题

pidan_2023 显示全部楼层 发表于 2024-3-9 19:16:51
【问题描述】
问题现象和发生的背景
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。


请问有什么修改方案?

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

s_hao

沙发 发表于 2024-3-27 09:29:39
更新代码重新试一下,已知的问题并修复了

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部