projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
USB: coding style fixes (structure naming)
[bertos.git]
/
bertos
/
kern
/
signal.c
diff --git
a/bertos/kern/signal.c
b/bertos/kern/signal.c
index 37a37a255196d5655ee35ce45273932a54c81475..2f72c47906d6bf74899a55a03bedc63bd9912064 100644
(file)
--- a/
bertos/kern/signal.c
+++ b/
bertos/kern/signal.c
@@
-75,9
+75,7
@@
* <pre>
* - Synchronous-signal delivery:
*
* <pre>
* - Synchronous-signal delivery:
*
- * P1__ __P2
- * \ /
- * \__sig_send()____proc_wakeup()__/
+ * [P1]____sig_send()____proc_wakeup()____[P2]
* </pre>
*
* In the asynchronous case, the process is scheduled for execution as a
* </pre>
*
* In the asynchronous case, the process is scheduled for execution as a
@@
-87,9
+85,7
@@
* <pre>
* - Asynchronous-signal delivery:
*
* <pre>
* - Asynchronous-signal delivery:
*
- * P1__ __P1__ __P2
- * \ / \ /
- * \__sig_post()__/ \__proc_schedule()__/
+ * [P1]____sig_post()____[P1]____proc_schedule()____[P2]
* </pre>
*
* In this way, any execution context, including an interrupt handler, can
* </pre>
*
* In this way, any execution context, including an interrupt handler, can
@@
-126,7
+122,6
@@
* - Do not call system functions that may implicitly sleep, such as
* timer_delayTicks().
*
* - Do not call system functions that may implicitly sleep, such as
* timer_delayTicks().
*
- * \version $Id$
* \author Bernie Innocenti <bernie@codewiz.org>
*/
* \author Bernie Innocenti <bernie@codewiz.org>
*/
@@
-255,9
+250,6
@@
INLINE void __sig_signal(Process *proc, sigmask_t sigs, bool wakeup)
{
cpu_flags_t flags;
{
cpu_flags_t flags;
- if (UNLIKELY(proc == current_process))
- return;
-
IRQ_SAVE_DISABLE(flags);
/* Set the signals */
IRQ_SAVE_DISABLE(flags);
/* Set the signals */
@@
-266,6
+258,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)
{
/* 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);
proc->sig_wait = 0;
if (wakeup)
proc_wakeup(proc);