Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
63c5763c
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
63c5763c
编写于
8月 19, 2023
作者:
W
wangyulie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改codecheck告警
Signed-off-by:
N
wangyulie
<
wanglieyu@126.com
>
上级
cf239447
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
49 addition
and
43 deletion
+49
-43
resourceschedule/resourceschedule_standard/ffrt/entry/src/main/cpp/ffrtndk.cpp
...urceschedule_standard/ffrt/entry/src/main/cpp/ffrtndk.cpp
+37
-31
resourceschedule/resourceschedule_standard/ffrt/hvigorw.bat
resourceschedule/resourceschedule_standard/ffrt/hvigorw.bat
+12
-12
未找到文件。
resourceschedule/resourceschedule_standard/ffrt/entry/src/main/cpp/ffrtndk.cpp
浏览文件 @
63c5763c
...
...
@@ -23,7 +23,7 @@
#include <string>
#include <unistd.h>
void
my_p
rint
(
void
*
arg
)
void
MyP
rint
(
void
*
arg
)
{
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"%{public}s"
,
"hello ffrt
\n
"
);
}
...
...
@@ -48,17 +48,17 @@ typedef struct {
ffrt_function_t
func
;
ffrt_function_t
after_func
;
void
*
arg
;
}
c_f
unction
;
}
CF
unction
;
typedef
struct
{
ffrt_cond_t
*
cond
;
int
*
a
;
ffrt_mutex_t
*
lock_
;
}
t
uple
;
}
FfrtT
uple
;
void
f
unc1
(
void
*
arg
)
void
F
unc1
(
void
*
arg
)
{
tuple
*
t
=
(
t
uple
*
)
arg
;
FfrtTuple
*
t
=
(
FfrtT
uple
*
)
arg
;
int
ret
=
ffrt_mutex_lock
(
t
->
lock_
);
if
(
ret
!=
ffrt_success
)
{
printf
(
"error
\n
"
);
...
...
@@ -81,9 +81,9 @@ void func1(void* arg)
printf
(
"a = %d"
,
*
(
t
->
a
));
}
void
f
unc2
(
void
*
arg
)
void
F
unc2
(
void
*
arg
)
{
tuple
*
t
=
(
t
uple
*
)
arg
;
FfrtTuple
*
t
=
(
FfrtT
uple
*
)
arg
;
int
ret
=
ffrt_mutex_lock
(
t
->
lock_
);
if
(
ret
!=
ffrt_success
)
{
printf
(
"error
\n
"
);
...
...
@@ -99,9 +99,9 @@ void func2(void* arg)
}
}
void
f
unc3
(
void
*
arg
)
void
F
unc3
(
void
*
arg
)
{
tuple
*
t
=
(
t
uple
*
)
arg
;
FfrtTuple
*
t
=
(
FfrtT
uple
*
)
arg
;
int
ret
=
ffrt_mutex_trylock
(
t
->
lock_
);
if
(
ret
!=
ffrt_success
)
{
printf
(
"error
\n
"
);
...
...
@@ -127,17 +127,17 @@ void func3(void* arg)
printf
(
"a = %d"
,
*
(
t
->
a
));
}
static
void
ffrt_exec_function_w
rapper
(
void
*
t
)
static
void
FfrtExecFunctionW
rapper
(
void
*
t
)
{
c_function
*
f
=
(
c_f
unction
*
)
t
;
CFunction
*
f
=
(
CF
unction
*
)
t
;
if
(
f
->
func
)
{
f
->
func
(
f
->
arg
);
}
}
static
void
ffrt_destroy_function_w
rapper
(
void
*
t
)
static
void
FfrtDestroyFunctionW
rapper
(
void
*
t
)
{
c_function
*
f
=
(
c_f
unction
*
)
t
;
CFunction
*
f
=
(
CF
unction
*
)
t
;
if
(
f
->
after_func
)
{
f
->
after_func
(
f
->
arg
);
}
...
...
@@ -147,11 +147,11 @@ static void ffrt_destroy_function_wrapper(void* t)
static
inline
ffrt_function_header_t
*
ffrt_create_function_wrapper
(
const
ffrt_function_t
func
,
const
ffrt_function_t
after_func
,
void
*
arg
,
ffrt_function_kind_t
kind_t
=
ffrt_function_kind_general
)
{
FFRT_STATIC_ASSERT
(
sizeof
(
c_f
unction
)
<=
ffrt_auto_managed_function_storage_size
,
FFRT_STATIC_ASSERT
(
sizeof
(
CF
unction
)
<=
ffrt_auto_managed_function_storage_size
,
size_of_function_must_be_less_than_ffrt_auto_managed_function_storage_size
);
c_function
*
f
=
(
c_f
unction
*
)
ffrt_alloc_auto_managed_function_storage_base
(
kind_t
);
f
->
header
.
exec
=
ffrt_exec_function_w
rapper
;
f
->
header
.
destroy
=
ffrt_destroy_function_w
rapper
;
CFunction
*
f
=
(
CF
unction
*
)
ffrt_alloc_auto_managed_function_storage_base
(
kind_t
);
f
->
header
.
exec
=
FfrtExecFunctionW
rapper
;
f
->
header
.
destroy
=
FfrtDestroyFunctionW
rapper
;
f
->
func
=
func
;
f
->
after_func
=
after_func
;
f
->
arg
=
arg
;
...
...
@@ -170,7 +170,7 @@ static inline ffrt_task_handle_t ffrt_submit_h_c(ffrt_function_t func, const ffr
return
ffrt_submit_h_base
(
ffrt_create_function_wrapper
(
func
,
after_func
,
arg
),
in_deps
,
out_deps
,
attr
);
}
void
ffrt_cv_t
ask
(
void
*
arg
)
void
FfrtCvT
ask
(
void
*
arg
)
{
int
*
a
=
(
int
*
)
arg
;
ffrt_cond_t
cond
;
...
...
@@ -179,14 +179,14 @@ void ffrt_cv_task(void* arg)
printf
(
"error
\n
"
);
}
ffrt_mutex_t
lock_
;
t
uple
t
=
{
&
cond
,
a
,
&
lock_
};
FfrtT
uple
t
=
{
&
cond
,
a
,
&
lock_
};
ret
=
ffrt_mutex_init
(
&
lock_
,
NULL
);
if
(
ret
!=
ffrt_success
)
{
printf
(
"error
\n
"
);
}
ffrt_submit_c
(
f
unc1
,
NULL
,
&
t
,
NULL
,
NULL
,
NULL
);
ffrt_submit_c
(
f
unc2
,
NULL
,
&
t
,
NULL
,
NULL
,
NULL
);
ffrt_submit_c
(
f
unc3
,
NULL
,
&
t
,
NULL
,
NULL
,
NULL
);
ffrt_submit_c
(
F
unc1
,
NULL
,
&
t
,
NULL
,
NULL
,
NULL
);
ffrt_submit_c
(
F
unc2
,
NULL
,
&
t
,
NULL
,
NULL
,
NULL
);
ffrt_submit_c
(
F
unc3
,
NULL
,
&
t
,
NULL
,
NULL
,
NULL
);
ffrt_wait
();
ffrt_cond_destroy
(
&
cond
);
ffrt_mutex_destroy
(
&
lock_
);
...
...
@@ -206,7 +206,7 @@ static napi_value SubmitSimpleFfrtTask(napi_env env, napi_callback_info info)
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"qos is %{public}d"
,
ffrt_task_attr_get_qos
(
&
attr
));
ffrt_task_attr_set_qos
(
&
attr
,
static_cast
<
ffrt_qos_t
>
(
ffrt_qos_user_initiated
));
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"qos2 is %{public}d"
,
ffrt_task_attr_get_qos
(
&
attr
));
ffrt_submit_c
(
my_p
rint
,
NULL
,
NULL
,
NULL
,
NULL
,
&
attr
);
ffrt_submit_c
(
MyP
rint
,
NULL
,
NULL
,
NULL
,
NULL
,
&
attr
);
int
result
=
ffrt_this_task_update_qos
(
static_cast
<
ffrt_qos_t
>
(
ffrt_qos_default
));
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"update_qos result is %{public}d"
,
result
);
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"qos3 is %{public}d"
,
ffrt_task_attr_get_qos
(
&
attr
));
...
...
@@ -223,8 +223,8 @@ static napi_value SubmitSimpleFfrtTask(napi_env env, napi_callback_info info)
static
napi_value
SubmitCondFfrtTask
(
napi_env
env
,
napi_callback_info
info
)
{
int
a
=
0
;
ffrt_submit_c
(
ffrt_cv_t
ask
,
NULL
,
&
a
,
NULL
,
NULL
,
NULL
);
ffrt_task_handle_t
task1
=
ffrt_submit_h_c
(
my_p
rint
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
ffrt_submit_c
(
FfrtCvT
ask
,
NULL
,
&
a
,
NULL
,
NULL
,
NULL
);
ffrt_task_handle_t
task1
=
ffrt_submit_h_c
(
MyP
rint
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
ffrt_wait_deps
(
nullptr
);
ffrt_wait
();
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"cond task a is %{public}d"
,
a
);
...
...
@@ -241,17 +241,23 @@ static napi_value SubmitQueueFfrtTask(napi_env env, napi_callback_info info)
ffrt_queue_attr_t
queue_attr
;
(
void
)
ffrt_queue_attr_init
(
&
queue_attr
);
ffrt_queue_attr_set_qos
(
&
queue_attr
,
ffrt_qos_default
);
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"queue task qos is %{public}d"
,
ffrt_queue_attr_get_qos
(
&
queue_attr
));
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"queue task qos is %{public}d"
,
ffrt_queue_attr_get_qos
(
&
queue_attr
));
ffrt_queue_attr_set_timeout
(
&
queue_attr
,
10000
);
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"queue task time is %{public}d"
,
ffrt_queue_attr_get_timeout
(
&
queue_attr
));
ffrt_queue_attr_set_callback
(
&
queue_attr
,
ffrt_create_function_wrapper
(
OnePlusForTest
,
NULL
,
&
b
,
ffrt_function_kind_queue
));
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"queue task time is %{public}d"
,
ffrt_queue_attr_get_timeout
(
&
queue_attr
));
ffrt_queue_attr_set_callback
(
&
queue_attr
,
ffrt_create_function_wrapper
(
OnePlusForTest
,
NULL
,
&
b
,
ffrt_function_kind_queue
));
ffrt_queue_attr_get_callback
(
&
queue_attr
);
ffrt_queue_t
queue_handle
=
ffrt_queue_create
(
ffrt_queue_serial
,
"test_queue"
,
&
queue_attr
);
ffrt_task_handle_t
task1
=
ffrt_queue_submit_h
(
queue_handle
,
ffrt_create_function_wrapper
(
OnePlusForTest
,
NULL
,
&
a
,
ffrt_function_kind_queue
),
nullptr
);
ffrt_task_handle_t
task1
=
ffrt_queue_submit_h
(
queue_handle
,
ffrt_create_function_wrapper
(
OnePlusForTest
,
NULL
,
&
a
,
ffrt_function_kind_queue
),
nullptr
);
ffrt_queue_cancel
(
task1
);
ffrt_queue_wait
(
task1
);
ffrt_queue_submit
(
queue_handle
,
ffrt_create_function_wrapper
(
MulipleForTest
,
nullptr
,
&
a
,
ffrt_function_kind_queue
),
nullptr
);
ffrt_queue_submit
(
queue_handle
,
ffrt_create_function_wrapper
(
SubForTest
,
nullptr
,
&
a
,
ffrt_function_kind_queue
),
nullptr
);
ffrt_queue_submit
(
queue_handle
,
ffrt_create_function_wrapper
(
MulipleForTest
,
nullptr
,
&
a
,
ffrt_function_kind_queue
),
nullptr
);
ffrt_queue_submit
(
queue_handle
,
ffrt_create_function_wrapper
(
SubForTest
,
nullptr
,
&
a
,
ffrt_function_kind_queue
),
nullptr
);
sleep
(
2
);
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"queue task a is %{public}d"
,
a
);
OH_LOG_Print
(
LOG_APP
,
LOG_INFO
,
1
,
"testFFRT"
,
"queue task b is %{public}d"
,
b
);
...
...
resourceschedule/resourceschedule_standard/ffrt/hvigorw.bat
浏览文件 @
63c5763c
@rem Copyright (c) 2023 Huawei Device Co., Ltd.
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem http://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@if
"
%DEBUG%
"
==
""
@echo
off
@rem # Copyright (c) 2022 Huawei Device Co., Ltd.
@rem # Licensed under the Apache License, Version 2.0 (the "License");
@rem # you may not use this file except in compliance with the License.
@rem # You may obtain a copy of the License at
@rem #
@rem # http://www.apache.org/licenses/LICENSE-2.0
@rem #
@rem # Unless required by applicable law or agreed to in writing, software
@rem # distributed under the License is distributed on an "AS IS" BASIS,
@rem # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem # See the License for the specific language governing permissions and
@rem # limitations under the License.
@rem ##########################################################################
@rem
@rem Hvigor startup script for Windows
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录