diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2008-01-19 13:27:47 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2008-01-19 13:27:47 +0000 |
commit | 32a531b09bf05000048bb3e1cbc25556075e2334 (patch) | |
tree | 3f7ec134a2c2e23a9bf8d8f8755034947afdde66 /uisimulator/sdl/thread-sdl.c | |
parent | 2235c7e582f21789f4f881380a983cae1737bb37 (diff) | |
download | rockbox-32a531b09bf05000048bb3e1cbc25556075e2334.tar.gz rockbox-32a531b09bf05000048bb3e1cbc25556075e2334.zip |
Do some simplification in switch_thread regarding interrupt enabling which simplifies kernel objects as well. Simply doing unconditional disable/enable should be fine in the firmware. Not sure about the case in the bootloader for all targets and so will evaluate but that should be fine too if everything is masked.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16107 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/sdl/thread-sdl.c')
-rw-r--r-- | uisimulator/sdl/thread-sdl.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/uisimulator/sdl/thread-sdl.c b/uisimulator/sdl/thread-sdl.c index b8297072f2..d1a8e60d01 100644 --- a/uisimulator/sdl/thread-sdl.c +++ b/uisimulator/sdl/thread-sdl.c | |||
@@ -135,8 +135,7 @@ bool thread_sdl_init(void *param) | |||
135 | running->name = "main"; | 135 | running->name = "main"; |
136 | running->state = STATE_RUNNING; | 136 | running->state = STATE_RUNNING; |
137 | running->context.c = SDL_CreateCond(); | 137 | running->context.c = SDL_CreateCond(); |
138 | cores[CURRENT_CORE].irq_level = STAY_IRQ_LEVEL; | 138 | |
139 | |||
140 | if (running->context.c == NULL) | 139 | if (running->context.c == NULL) |
141 | { | 140 | { |
142 | fprintf(stderr, "Failed to create main condition variable\n"); | 141 | fprintf(stderr, "Failed to create main condition variable\n"); |
@@ -230,15 +229,9 @@ static void remove_from_list_l(struct thread_entry **list, | |||
230 | thread->l.next->l.prev = thread->l.prev; | 229 | thread->l.next->l.prev = thread->l.prev; |
231 | } | 230 | } |
232 | 231 | ||
233 | static void run_blocking_ops(void) | 232 | static inline void run_blocking_ops(void) |
234 | { | 233 | { |
235 | int level = cores[CURRENT_CORE].irq_level; | 234 | set_irq_level(0); |
236 | |||
237 | if (level != STAY_IRQ_LEVEL) | ||
238 | { | ||
239 | cores[CURRENT_CORE].irq_level = STAY_IRQ_LEVEL; | ||
240 | set_irq_level(level); | ||
241 | } | ||
242 | } | 235 | } |
243 | 236 | ||
244 | struct thread_entry *thread_get_current(void) | 237 | struct thread_entry *thread_get_current(void) |