From a4d19b7e899a9223433fcb91627af737a638e9d3 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Mon, 3 Dec 2007 14:01:12 +0000 Subject: 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 --- uisimulator/sdl/thread-sdl.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'uisimulator/sdl/thread-sdl.c') 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) return true; } +/* A way to yield and leave the threading system for extended periods */ +void thread_sdl_thread_lock(void *me) +{ + SDL_LockMutex(m); + running = (struct thread_entry *)me; + + if (threads_exit) + remove_thread(NULL); +} + +void * thread_sdl_thread_unlock(void) +{ + struct thread_entry *current = running; + SDL_UnlockMutex(m); + return current; +} + static int find_empty_thread_slot(void) { int n; -- cgit v1.2.3