X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fsignal.c;h=139e69da0274d4d0c1f3f2331a779a8fe36c9732;hb=41139eb77643289535707f56419bcd0d2a580180;hp=71ccf67ada7dd6090ecc5a1420a7580567dda67d;hpb=2d0d0a3260be3a5dda727a7b52d38d8bb8637ced;p=bertos.git diff --git a/bertos/kern/signal.c b/bertos/kern/signal.c index 71ccf67a..139e69da 100644 --- a/bertos/kern/signal.c +++ b/bertos/kern/signal.c @@ -251,9 +251,6 @@ INLINE void __sig_signal(Process *proc, sigmask_t sigs, bool wakeup) { cpu_flags_t flags; - if (UNLIKELY(proc == current_process)) - return; - IRQ_SAVE_DISABLE(flags); /* Set the signals */ @@ -262,6 +259,8 @@ INLINE void __sig_signal(Process *proc, sigmask_t sigs, bool wakeup) /* Check if process needs to be awoken */ if (proc->sig_recv & proc->sig_wait) { + ASSERT(proc != current_process); + proc->sig_wait = 0; if (wakeup) proc_wakeup(proc);