summaryrefslogtreecommitdiff
path: root/firmware/kernel.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2004-09-01 06:24:05 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2004-09-01 06:24:05 +0000
commitcc0552877bd56629e44c82d18273d80f9ec05ef1 (patch)
treed6dbd97cf3f74e6e9fc6f976ba3490a908b2d2d5 /firmware/kernel.c
parent9872fead25247639eea33b40c2413907d9a6fbf4 (diff)
downloadrockbox-cc0552877bd56629e44c82d18273d80f9ec05ef1.zip
rockbox-cc0552877bd56629e44c82d18273d80f9ec05ef1.tar.gz
rockbox-cc0552877bd56629e44c82d18273d80f9ec05ef1.tar.bz2
rockbox-cc0552877bd56629e44c82d18273d80f9ec05ef1.tar.xz
Made queue_clear() atomic, and made the argument non-const
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5030 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r--firmware/kernel.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c
index 6d9e2a8..a9c7711 100644
--- a/firmware/kernel.c
+++ b/firmware/kernel.c
@@ -131,10 +131,12 @@ bool queue_empty(const struct event_queue* q)
return ( q->read == q->write );
}
-void queue_clear(const struct event_queue* q)
+void queue_clear(struct event_queue* q)
{
+ int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL);
q->read = 0;
q->write = 0;
+ set_irq_level(oldlevel);
}
int queue_broadcast(int id, void *data)