#include #include #include #include #include #include #define MUTEX 2000 LOCAL volatile char letter = 'c'; void app_proc (void) { char arg_letter = (char)(uintptr_t)argument_ptr (); letter = arg_letter; for (;;) { mutex_lock (MUTEX); for (int i = 0; i < 3; i++) test (letter); mutex_unlock (MUTEX); } process_quit (); } void app_main (void) { mutex_create (MUTEX); letter = 'a'; process_spawn (&app_proc, (void*)'a'); process_spawn (&app_proc, (void*)'b'); process_spawn (&app_proc, (void*)'c'); for (;;) { mutex_lock (MUTEX); for (int i = 0; i < 3; i++) test (letter); mutex_unlock (MUTEX); } }