Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
communication_ipc
提交
58a75ba4
C
communication_ipc
项目概览
OpenHarmony
/
communication_ipc
大约 1 年 前同步成功
通知
20
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
communication_ipc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
58a75ba4
编写于
5月 10, 2022
作者:
O
openharmony_ci
提交者:
Gitee
5月 10, 2022
浏览文件
操作
浏览文件
下载
差异文件
!250 ipc:modify interface of ResetIpc
Merge pull request !250 from liubb_0516/master
上级
01633e0d
9a9a7174
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
54 addition
and
1 deletion
+54
-1
interfaces/innerkits/c/ipc/BUILD.gn
interfaces/innerkits/c/ipc/BUILD.gn
+2
-0
ipc/native/c/ipc/src/liteos_a/ipc_invoker.c
ipc/native/c/ipc/src/liteos_a/ipc_invoker.c
+1
-0
ipc/native/c/manager/include/ipc_process_skeleton.h
ipc/native/c/manager/include/ipc_process_skeleton.h
+0
-1
ipc/native/c/manager/include/ipc_skeleton_pri.h
ipc/native/c/manager/include/ipc_skeleton_pri.h
+29
-0
ipc/native/c/manager/src/ipc_process_skeleton.c
ipc/native/c/manager/src/ipc_process_skeleton.c
+22
-0
未找到文件。
interfaces/innerkits/c/ipc/BUILD.gn
浏览文件 @
58a75ba4
...
...
@@ -175,6 +175,7 @@ if (ohos_kernel_type == "liteos_m") {
"//third_party/bounds_checking_function/:libsec_shared",
]
configs -= [ "//build/lite/config:clang_opt" ]
defines = [ "IPC_RESET_SKELETON" ]
}
SYSTEM_LEVEL = "small"
...
...
@@ -217,6 +218,7 @@ if (ohos_kernel_type == "liteos_m") {
]
deps = [ "//foundation/communication/dsoftbus/sdk:softbus_client" ]
defines = [ "RPC_SOFTBUS_TRANS" ]
defines += [ "IPC_RESET_SKELETON" ]
if (enable_socket_trans) {
sources -= [ "$IPC_CORE_ROOT/rpc/trans_adapter/src/rpc_softbus_trans.c" ]
...
...
ipc/native/c/ipc/src/liteos_a/ipc_invoker.c
浏览文件 @
58a75ba4
...
...
@@ -339,6 +339,7 @@ static void GetDeathCallback(IpcMsg* msg, HdlerArg* arg)
return
;
}
arg
->
msg
=
msg
;
arg
->
num
=
MAX_DEATH_CALLBACK_NUM
;
(
void
)
pthread_mutex_unlock
(
&
g_ipcCallback
.
mutex
);
}
...
...
ipc/native/c/manager/include/ipc_process_skeleton.h
浏览文件 @
58a75ba4
...
...
@@ -70,7 +70,6 @@ void SendObituary(DeathCallback *deathCallback);
void
DeleteDeathCallback
(
DeathCallback
*
deathCallback
);
void
WaitForProxyInit
(
SvcIdentity
*
svc
);
int32_t
DeleteHandle
(
int32_t
handle
);
void
ResetIpc
(
void
);
#ifdef __cplusplus
}
#endif
/* __cplusplus */
...
...
ipc/native/c/manager/include/ipc_skeleton_pri.h
0 → 100755
浏览文件 @
58a75ba4
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef OHOS_IPC_RPC_SKELETON_PRI_H
#define OHOS_IPC_RPC_SKELETON_PRI_H
#ifdef __cplusplus
extern
"C"
{
#endif
/* __cplusplus */
void
ResetIpc
(
void
);
#ifdef __cplusplus
}
#endif
/* __cplusplus */
#endif // OHOS_IPC_RPC_SKELETON_PRI_H
ipc/native/c/manager/src/ipc_process_skeleton.c
浏览文件 @
58a75ba4
...
...
@@ -15,6 +15,7 @@
#include "ipc_process_skeleton.h"
#include "ipc_skeleton.h"
#include "ipc_skeleton_pri.h"
#include "ipc_thread_pool.h"
#include "iremote_invoker.h"
#include "rpc_errno.h"
...
...
@@ -422,10 +423,31 @@ void DeleteDeathCallback(DeathCallback *deathCallback)
free
(
deathCallback
);
}
static
void
DeleteAllNode
(
void
)
{
(
void
)
pthread_mutex_lock
(
&
g_ipcSkeleton
->
lock
);
DeathCallback
*
node
=
NULL
;
DeathCallback
*
next
=
NULL
;
UTILS_DL_LIST_FOR_EACH_ENTRY_SAFE
(
node
,
next
,
&
g_ipcSkeleton
->
objects
,
DeathCallback
,
list
)
{
pthread_mutex_destroy
(
&
node
->
lock
);
UtilsListDelete
(
&
node
->
list
);
free
(
node
);
}
pthread_mutex_unlock
(
&
g_ipcSkeleton
->
lock
);
}
void
ResetIpc
(
void
)
{
RPC_LOG_INFO
(
"ResetIpc called"
);
RemoteInvoker
*
invoker
=
GetRemoteInvoker
();
if
(
invoker
!=
NULL
&&
invoker
->
InvokerResetIpc
!=
NULL
)
{
(
invoker
->
InvokerResetIpc
)();
}
DeleteAllNode
();
#ifdef IPC_RESET_SKELETON
DeleteIpcSkeleton
(
g_ipcSkeleton
);
g_ipcSkeleton
=
NULL
;
g_ipcSkeleton
=
IpcProcessSkeleton
();
#endif
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录