From e3d6f139558912d4d1b3447b4a3c9525fe60d4f3 Mon Sep 17 00:00:00 2001 From: mazhabandeng Date: Wed, 16 Jul 2025 16:23:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=98=9F=E5=88=97=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E4=BB=A5=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mazhabandeng --- resourceschedule/ffrt/c/queue.h | 27 +++++++++++++++++++++++++++ resourceschedule/ffrt/ffrt.ndk.json | 9 +++++++++ 2 files changed, 36 insertions(+) diff --git a/resourceschedule/ffrt/c/queue.h b/resourceschedule/ffrt/c/queue.h index 19c87469a68..76ea5d99c0c 100644 --- a/resourceschedule/ffrt/c/queue.h +++ b/resourceschedule/ffrt/c/queue.h @@ -151,6 +151,33 @@ FFRT_C_API void ffrt_queue_attr_set_max_concurrency(ffrt_queue_attr_t* attr, con */ FFRT_C_API int ffrt_queue_attr_get_max_concurrency(const ffrt_queue_attr_t* attr); +/** + * @brief Sets the execution mode of a queue attribute. + * + * This interface specifies whether tasks in the queue are executed in coroutine mode or thread mode. + * By default, tasks are executed in coroutine mode. + * Set legacy_mode to true to enable thread-based execution. + * + * @param attr Queue attribute pointer. + * @param legacy_mode Indicates whether to enable thread-based execution mode. + - true: Tasks are executed as native threads (legacy mode). + - false: Tasks are executed as coroutines (default). + * @since 20 + */ +FFRT_C_API void ffrt_queue_attr_set_mode(ffrt_queue_attr_t* attr, const bool legacy_mode); + +/** + * @brief Gets the execution mode of a queue attribute. + * + * This interface returns whether tasks in the queue are configured to run in thread-based execution mode (legacy mode). + * + * @param attr Queue attribute pointer. + * @return Returns true if tasks are executed as native threads (legacy mode). + returns false if tasks are executed as coroutines (default). + * @since 20 + */ +FFRT_C_API bool ffrt_queue_attr_get_mode(const ffrt_queue_attr_t* attr); + /** * @brief Creates a queue. * diff --git a/resourceschedule/ffrt/ffrt.ndk.json b/resourceschedule/ffrt/ffrt.ndk.json index 3ab20c1207d..aba66d36b5c 100644 --- a/resourceschedule/ffrt/ffrt.ndk.json +++ b/resourceschedule/ffrt/ffrt.ndk.json @@ -123,6 +123,15 @@ "first_introduced": "20", "name": "ffrt_fiber_switch" }, + { + "first_introduced": "20", + "name": "ffrt_queue_attr_set_mode" + }, + { + "first_introduced": "20", + "name": "ffrt_queue_attr_get_mode" + }, + { "name": "ffrt_queue_attr_get_mode" }, { "name": "ffrt_task_handle_destroy" }, { "name": "ffrt_wait_deps" }, { "name": "ffrt_wait" }, -- Gitee From a84db143610bd39ff32039224495c1e72f42ad82 Mon Sep 17 00:00:00 2001 From: mazhabandeng Date: Wed, 16 Jul 2025 16:37:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=98=9F=E5=88=97=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E4=BB=A5=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mazhabandeng --- resourceschedule/ffrt/ffrt.ndk.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resourceschedule/ffrt/ffrt.ndk.json b/resourceschedule/ffrt/ffrt.ndk.json index aba66d36b5c..9cb99963f60 100644 --- a/resourceschedule/ffrt/ffrt.ndk.json +++ b/resourceschedule/ffrt/ffrt.ndk.json @@ -131,7 +131,6 @@ "first_introduced": "20", "name": "ffrt_queue_attr_get_mode" }, - { "name": "ffrt_queue_attr_get_mode" }, { "name": "ffrt_task_handle_destroy" }, { "name": "ffrt_wait_deps" }, { "name": "ffrt_wait" }, -- Gitee From b24d663cea3b33d5c64350241a71c101e21a921d Mon Sep 17 00:00:00 2001 From: mazhabandeng Date: Thu, 17 Jul 2025 10:32:44 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=98=9F=E5=88=97=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E4=BB=A5=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mazhabandeng --- resourceschedule/ffrt/c/queue.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resourceschedule/ffrt/c/queue.h b/resourceschedule/ffrt/c/queue.h index 76ea5d99c0c..5bdf7c7dadc 100644 --- a/resourceschedule/ffrt/c/queue.h +++ b/resourceschedule/ffrt/c/queue.h @@ -172,7 +172,7 @@ FFRT_C_API void ffrt_queue_attr_set_mode(ffrt_queue_attr_t* attr, const bool leg * This interface returns whether tasks in the queue are configured to run in thread-based execution mode (legacy mode). * * @param attr Queue attribute pointer. - * @return Returns true if tasks are executed as native threads (legacy mode). + * @return Returns true if tasks are executed as native threads (legacy mode); returns false if tasks are executed as coroutines (default). * @since 20 */ -- Gitee