summaryrefslogtreecommitdiff
path: root/src/mempool.c
diff options
context:
space:
mode:
authorxqyjlj <[email protected]>2023-12-24 20:03:28 +0800
committerGitHub <[email protected]>2023-12-24 20:03:28 +0800
commit6be74e227e3471bdb95fd5f8dd922c76d8d9ef40 (patch)
tree7012a8d129566f9cba62bd8b4d7f9cde6db3a9bd /src/mempool.c
parentb8d1d671a91cdb16198ea4dab0f9deb029521d72 (diff)
🐞 fix(mempool): fix assert (#8364)
Diffstat (limited to 'src/mempool.c')
-rw-r--r--src/mempool.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mempool.c b/src/mempool.c
index 3992a85219..4fdba42715 100644
--- a/src/mempool.c
+++ b/src/mempool.c
@@ -16,6 +16,7 @@
* 2012-03-22 Bernard fix align issue in rt_mp_init and rt_mp_create.
* 2022-01-07 Gabriel Moving __on_rt_xxxxx_hook to mempool.c
* 2023-09-15 xqyjlj perf rt_hw_interrupt_disable/enable
+ * 2023-12-10 xqyjlj fix spinlock assert
*/
#include <rthw.h>
@@ -290,12 +291,13 @@ rt_err_t rt_mp_delete(rt_mp_t mp)
rt_thread_resume(thread);
}
+ rt_spin_unlock_irqrestore(&(mp->spinlock), level);
+
/* release allocated room */
rt_free(mp->start_address);
/* detach object */
rt_object_delete(&(mp->parent));
- rt_spin_unlock_irqrestore(&(mp->spinlock), level);
return RT_EOK;
}