Files
mop3/init/init.c
2026-02-13 00:59:42 +01:00

53 lines
894 B
C

#include <limits.h>
#include <process.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <terminal.h>
#define MUTEX 2000
__thread volatile char letter = 'c';
void app_proc (void) {
char arg_letter = (char)(uintptr_t)process_argument ();
letter = arg_letter;
for (;;) {
mutex_lock (MUTEX);
for (int i = 0; i < 3; i++)
terminal_print (&letter, 1);
for (volatile int i = 0; i < 1000 * 1000; i++)
;
mutex_unlock (MUTEX);
}
process_quit ();
}
void app_main (void) {
mutex_create (MUTEX);
letter = 'a';
process_spawn (&app_proc, (void*)'b');
process_spawn (&app_proc, (void*)'c');
process_spawn (&app_proc, (void*)'d');
for (;;) {
mutex_lock (MUTEX);
for (int i = 0; i < 3; i++)
terminal_print (&letter, 1);
for (volatile int i = 0; i < 1000 * 1000; i++)
;
mutex_unlock (MUTEX);
}
}