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}