From 0410c7fedd26a155c823c9b0d6e3a538912139b8 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Wed, 12 Jan 2022 11:03:50 +0800 Subject: [PATCH] add function sched_delay_free_ptr --- HISTORY | 3 ++- src/sched_thread.c | 13 +++++++++++++ src/sched_thread.h | 9 +++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/HISTORY b/HISTORY index 2ff1c94..9f01486 100644 --- a/HISTORY +++ b/HISTORY @@ -1,7 +1,8 @@ -Version 1.55 2022-01-09 +Version 1.55 2022-01-12 * fastcommon php extension adapt to php 8 * function fast_mblock_batch_alloc changed + * add function sched_delay_free_ptr Version 1.54 2021-12-23 * fast_allocator.[hc]: correct reclaim_interval logic diff --git a/src/sched_thread.c b/src/sched_thread.c index 804b396..e140433 100644 --- a/src/sched_thread.c +++ b/src/sched_thread.c @@ -963,3 +963,16 @@ uint32_t sched_generate_next_id() { return ++next_id; } + +static int sched_free_ptr_func(void *ptr) +{ + free(ptr); + return 0; +} + +int sched_delay_free_ptr(void *ptr, const int delay_seconds) +{ + const bool new_thread = false; + return sched_add_delay_task_ex(schedule_context, sched_free_ptr_func, + ptr, delay_seconds, new_thread); +} diff --git a/src/sched_thread.h b/src/sched_thread.h index e22971e..1647983 100644 --- a/src/sched_thread.h +++ b/src/sched_thread.h @@ -168,6 +168,15 @@ int sched_add_delay_task(TaskFunc task_func, void *func_args, const int delay_seconds, const bool new_thread); +/** delay free a pointer + * parameters: + * ptr: the ptr to free + * delay_seconds: delay seconds to free the ptr + * return: error no, 0 for success, != 0 fail +*/ +int sched_delay_free_ptr(void *ptr, const int delay_seconds); + + /** init the schedule context * parameters: * pContext: store the ScheduleContext pointer