diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2007-12-03 14:01:12 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2007-12-03 14:01:12 +0000 |
commit | a4d19b7e899a9223433fcb91627af737a638e9d3 (patch) | |
tree | c3ca7e9782f7029ca0226969c1e402f20d4fa444 /uisimulator/sdl/thread-sdl.c | |
parent | 08533e7f37f9bd97a5653b137a179111f37d63f6 (diff) | |
download | rockbox-a4d19b7e899a9223433fcb91627af737a638e9d3.tar.gz rockbox-a4d19b7e899a9223433fcb91627af737a638e9d3.zip |
Simplify the uisimulator I/O routine and let the rockbox thread calling the functions be the background thread. Should speed things up too and lose none of the advantanges of background I/O.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15870 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/sdl/thread-sdl.c')
-rw-r--r-- | uisimulator/sdl/thread-sdl.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/uisimulator/sdl/thread-sdl.c b/uisimulator/sdl/thread-sdl.c index a07ac29738..b8297072f2 100644 --- a/uisimulator/sdl/thread-sdl.c +++ b/uisimulator/sdl/thread-sdl.c | |||
@@ -157,6 +157,23 @@ bool thread_sdl_init(void *param) | |||
157 | return true; | 157 | return true; |
158 | } | 158 | } |
159 | 159 | ||
160 | /* A way to yield and leave the threading system for extended periods */ | ||
161 | void thread_sdl_thread_lock(void *me) | ||
162 | { | ||
163 | SDL_LockMutex(m); | ||
164 | running = (struct thread_entry *)me; | ||
165 | |||
166 | if (threads_exit) | ||
167 | remove_thread(NULL); | ||
168 | } | ||
169 | |||
170 | void * thread_sdl_thread_unlock(void) | ||
171 | { | ||
172 | struct thread_entry *current = running; | ||
173 | SDL_UnlockMutex(m); | ||
174 | return current; | ||
175 | } | ||
176 | |||
160 | static int find_empty_thread_slot(void) | 177 | static int find_empty_thread_slot(void) |
161 | { | 178 | { |
162 | int n; | 179 | int n; |