修复thread被释放后内存被重复访问的问题
This commit is contained in:
@@ -21,9 +21,22 @@ syscall_entry_func syscall_handler_get(void)
|
||||
{
|
||||
return syscall_entry;
|
||||
}
|
||||
void thread_knl_pf_set(thread_t *cur_th, void *pc)
|
||||
{
|
||||
pf_t *cur_pf = ((pf_t *)((char *)cur_th + THREAD_BLOCK_SIZE)) - 1;
|
||||
|
||||
cur_pf->pf_s.xpsr = 0x01000000L;
|
||||
cur_pf->pf_s.lr = (umword_t)NULL; //!< 线程退出时调用的函数
|
||||
cur_pf->pf_s.pc = (umword_t)pc | 0x1;
|
||||
// cur_pf->rg1[5] = (umword_t)0;
|
||||
|
||||
cur_th->sp.knl_sp = (char *)cur_pf;
|
||||
cur_th->sp.user_sp = 0;
|
||||
cur_th->sp.sp_type = 0;
|
||||
}
|
||||
void thread_user_pf_set(thread_t *cur_th, void *pc, void *user_sp, void *ram, umword_t stack)
|
||||
{
|
||||
assert((((umword_t)user_sp) & 0x7UL) == 0);
|
||||
umword_t usp = ((umword_t)(user_sp - 8) & ~0x7UL);
|
||||
|
||||
if (stack)
|
||||
|
||||
Reference in New Issue
Block a user