Skip to content

Commit

Permalink
[lwp][tid]add error log when tid depleted, and return correct errno w…
Browse files Browse the repository at this point in the history
…hen clone failed (#9327)

add error log when tid depleted, and return correct errno when clone failed
  • Loading branch information
zmshahaha authored Aug 22, 2024
1 parent fd31965 commit 9d95ad9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
6 changes: 5 additions & 1 deletion components/lwp/lwp_syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -1832,6 +1832,7 @@ long _sys_clone(void *arg[])
rt_thread_t thread = RT_NULL;
rt_thread_t self = RT_NULL;
int tid = 0;
rt_err_t err;

unsigned long flags = 0;
void *user_stack = RT_NULL;
Expand Down Expand Up @@ -1935,6 +1936,9 @@ long _sys_clone(void *arg[])
rt_thread_startup(thread);
return (long)tid;
fail:
err = GET_ERRNO();
RT_ASSERT(err < 0);

lwp_tid_put(tid);
if (thread)
{
Expand All @@ -1944,7 +1948,7 @@ long _sys_clone(void *arg[])
{
lwp_ref_dec(lwp);
}
return GET_ERRNO();
return (long)err;
}

rt_weak long sys_clone(void *arg[])
Expand Down
6 changes: 6 additions & 0 deletions components/lwp/lwp_tid.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@ int lwp_tid_get(void)
current_tid = tid;
}
lwp_mutex_release_safe(&tid_lock);

if (tid <= 0)
{
LOG_W("resource TID exhausted.");
}

return tid;
}

Expand Down

0 comments on commit 9d95ad9

Please sign in to comment.