1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#include "ffrt_inner.h"
17
18int ffrt_submit_example1()
19{
20    int x = 0;
21    ffrt::submit([&]() { x = 2; }, {}, {&x});
22    ffrt::submit([&]() { x = x * 3; }, {&x}, {});
23    ffrt::wait();
24    printf("hello ffrt. x=%d\n", x);
25    return 0;
26}
27int ffrt_submit_example2()
28{
29    int x = 0;
30    ffrt::submit([&]() { x = 2; }, {}, {&x}, ffrt::task_attr().name("add2"));
31    ffrt::submit([&]() { x = x * 3; }, {&x}, {},
32        ffrt::task_attr().name("mul3")); // default to CPU
33    ffrt::wait();
34    printf("hello ffrt. x=%d\n", x);
35    return 0;
36}
37
38int ffrt_submit_example3()
39{
40    int x = 0;
41    ffrt::task_handle h = ffrt::submit_h([&]() { x = 2; }, {}, {});
42    ffrt::wait({h});
43    printf("hello ffrt, x=%d\n", x);
44    return 0;
45}
46
47int main()
48{
49    ffrt_submit_example1();
50    ffrt_submit_example2();
51    ffrt_submit_example3();
52    return 0;
53}