Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Init Lite
提交
59ba55fa
S
Startup Init Lite
项目概览
OpenHarmony
/
Startup Init Lite
1 年多 前同步成功
通知
3
Star
37
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Startup Init Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
59ba55fa
编写于
7月 01, 2022
作者:
O
openharmony_ci
提交者:
Gitee
7月 01, 2022
浏览文件
操作
浏览文件
下载
差异文件
!893 fix get serial 异常
Merge pull request !893 from Mupceet/initdev
上级
753744ec
38b99975
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
5 deletion
+6
-5
device_info/device_info_kits.cpp
device_info/device_info_kits.cpp
+6
-5
未找到文件。
device_info/device_info_kits.cpp
浏览文件 @
59ba55fa
...
...
@@ -37,7 +37,10 @@ DeviceInfoKits &DeviceInfoKits::GetInstance()
void
DeviceInfoKits
::
LoadDeviceInfoSa
()
{
DINFO_LOGV
(
"deviceInfoService_ is %d"
,
deviceInfoService_
==
nullptr
);
std
::
unique_lock
<
std
::
mutex
>
lock
(
lock_
);
if
(
deviceInfoService_
!=
nullptr
)
{
return
;
}
auto
sam
=
SystemAbilityManagerClient
::
GetInstance
().
GetSystemAbilityManager
();
DINFO_CHECK
(
sam
!=
nullptr
,
return
,
"GetSystemAbilityManager return null"
);
...
...
@@ -47,7 +50,6 @@ void DeviceInfoKits::LoadDeviceInfoSa()
int32_t
ret
=
sam
->
LoadSystemAbility
(
SYSPARAM_DEVICE_SERVICE_ID
,
deviceInfoLoad
);
DINFO_CHECK
(
ret
==
ERR_OK
,
return
,
"LoadSystemAbility deviceinfo sa failed"
);
std
::
unique_lock
<
std
::
mutex
>
lock
(
lock_
);
// wait_for release lock and block until time out(60s) or match the condition with notice
auto
waitStatus
=
deviceInfoLoadCon_
.
wait_for
(
lock
,
std
::
chrono
::
milliseconds
(
DEVICEINFO_LOAD_SA_TIMEOUT_MS
),
[
this
]()
{
return
deviceInfoService_
!=
nullptr
;
});
...
...
@@ -67,19 +69,18 @@ sptr<IDeviceInfo> DeviceInfoKits::GetService()
void
DeviceInfoKits
::
FinishStartSASuccess
(
const
sptr
<
IRemoteObject
>
&
remoteObject
)
{
DINFO_LOGI
(
"get deviceinfo sa success."
);
deviceInfoService_
=
iface_cast
<
IDeviceInfo
>
(
remoteObject
);
// get lock which wait_for release and send a notice so that wait_for can out of block
std
::
unique_lock
<
std
::
mutex
>
lock
(
lock_
);
deviceInfoService_
=
iface_cast
<
IDeviceInfo
>
(
remoteObject
);
deviceInfoLoadCon_
.
notify_one
();
}
void
DeviceInfoKits
::
FinishStartSAFailed
()
{
DINFO_LOGI
(
"get deviceinfo sa failed."
);
// get lock which wait_for release and send a notice
std
::
unique_lock
<
std
::
mutex
>
lock
(
lock_
);
deviceInfoService_
=
nullptr
;
deviceInfoLoadCon_
.
notify_one
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录