Răsfoiți Sursa

非lwp线程不允许kill

shaojinchun 5 ani în urmă
părinte
comite
a527cff879
1 a modificat fișierele cu 4 adăugiri și 0 ștergeri
  1. 4 0
      components/lwp/lwp_signal.c

+ 4 - 0
components/lwp/lwp_signal.c

@@ -418,6 +418,10 @@ int lwp_thread_kill(rt_thread_t thread, int sig)
     if (sig == 0 || sig > _LWP_NSIG)
     if (sig == 0 || sig > _LWP_NSIG)
         return ret;
         return ret;
     level = rt_hw_interrupt_disable();
     level = rt_hw_interrupt_disable();
+    if (!thread->lwp)
+    {
+        goto out;
+    }
     if (lwp_sigismember(&thread->signal_mask, sig)) /* if signal masked */
     if (lwp_sigismember(&thread->signal_mask, sig)) /* if signal masked */
     {
     {
         goto out;
         goto out;