projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Include proper header.
[bertos.git]
/
bertos
/
kern
/
signal.c
diff --git
a/bertos/kern/signal.c
b/bertos/kern/signal.c
index 3e882cef168775f53367cf0561195bdfd9587495..948d68f1d814c687e8edb805b047da4596975242 100644
(file)
--- a/
bertos/kern/signal.c
+++ b/
bertos/kern/signal.c
@@
-136,11
+136,13
@@
sigmask_t sig_wait(sigmask_t sigs)
{
sigmask_t result;
cpuflags_t flags;
{
sigmask_t result;
cpuflags_t flags;
- extern int preempt_forbid_cnt;
/* Sleeping with IRQs disabled or preemption forbidden is illegal */
IRQ_ASSERT_ENABLED();
/* Sleeping with IRQs disabled or preemption forbidden is illegal */
IRQ_ASSERT_ENABLED();
+
+ #if CONFIG_KERN_PREEMPT
ASSERT(preempt_forbid_cnt == 0);
ASSERT(preempt_forbid_cnt == 0);
+ #endif
/*
* This is subtle: there's a race condition where a concurrent
/*
* This is subtle: there's a race condition where a concurrent
@@
-164,13
+166,13
@@
sigmask_t sig_wait(sigmask_t sigs)
CurrentProcess->sig_wait = sigs;
/*
CurrentProcess->sig_wait = sigs;
/*
- * Go to sleep and proc_s
chedule()
another process.
+ * Go to sleep and proc_s
witch() to
another process.
*
*
- * We re-enable IRQs because proc_s
chedule
() does not
+ * We re-enable IRQs because proc_s
witch
() does not
* guarantee to save and restore the interrupt mask.
*/
IRQ_RESTORE(flags);
* guarantee to save and restore the interrupt mask.
*/
IRQ_RESTORE(flags);
- proc_s
chedule
();
+ proc_s
witch
();
IRQ_SAVE_DISABLE(flags);
/*
IRQ_SAVE_DISABLE(flags);
/*