jlaitine commented on code in PR #17263:
URL: https://github.com/apache/nuttx/pull/17263#discussion_r2479265968
##########
sched/signal/sig_dispatch.c:
##########
@@ -364,11 +364,10 @@ static irqstate_t nxsig_alloc_dyn_pending(irqstate_t
flags)
bool alloc_signal = sq_empty(&g_sigpendingsignal);
bool alloc_sigact = sq_empty(&g_sigpendingaction);
- /* Signals are not dispatched from the idle task */
+ /* We can't do memory allocations in idle task or interrupt */
- DEBUGASSERT(!sched_idletask());
-
- if (alloc_signal || alloc_sigact)
+ if ((alloc_signal || alloc_sigact) &&
+ !sched_idletask() && !up_interrupt_context())
Review Comment:
> What if we protect this part with #ifdef CONFIG_SIGNAL_ALLOWED_FROM_ISR ?
This way the previous behavior will not changed.
This *does not* change the previous behaviour. You *can't* call kmm_malloc
from an isr, but there *must* be enough pre-allocated structures for isr if you
rely on signalling from an isr.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]