All checks were successful
Build documentation / build-and-deploy (push) Successful in 37s
47 lines
750 B
C
47 lines
750 B
C
#include <limits.h>
|
|
#include <proc/local.h>
|
|
#include <proc/proc.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
#include <string/string.h>
|
|
|
|
#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);
|
|
}
|
|
}
|