From 9cde77060a05ed9b0dae8dffdb7f9ed77734bbf9 Mon Sep 17 00:00:00 2001 From: Brandon Low Date: Wed, 12 Apr 2006 15:38:56 +0000 Subject: [PATCH] Patch 5107 from Steve Bavin, enable locking on sdl sim, now mutexes actually MUT EX on the SDL sim git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9638 a1c6a512-1295-4272-9138-f99709370657 --- docs/CREDITS | 1 + uisimulator/sdl/kernel.c | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/CREDITS b/docs/CREDITS index 4c25a979e5..2f1d451d2d 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -197,3 +197,4 @@ Rani Hod Tom Ross Anton Romanov Jean-Luc Ohl +Steve Bavin diff --git a/uisimulator/sdl/kernel.c b/uisimulator/sdl/kernel.c index c17dc49dd6..b9ffe0eefe 100644 --- a/uisimulator/sdl/kernel.c +++ b/uisimulator/sdl/kernel.c @@ -150,18 +150,21 @@ int tick_remove_task(void (*f)(void)) return -1; } -/* TODO: Implement mutexes for win32 */ +/* Very simple mutex simulation - won't work with pre-emptive + multitasking, but is better than nothing at all */ void mutex_init(struct mutex *m) { - (void)m; + m->locked = false; } void mutex_lock(struct mutex *m) { - (void)m; + while(m->locked) + switch_thread(); + m->locked = true; } void mutex_unlock(struct mutex *m) { - (void)m; + m->locked = false; }