All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m19s
63 lines
1.1 KiB
C
63 lines
1.1 KiB
C
#include <kb.h>
|
|
#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_exec ("ramdisk:/ce"); */
|
|
|
|
/* process_spawn (&app_proc, (void*)'b'); */
|
|
/* process_spawn (&app_proc, (void*)'c'); */
|
|
/* process_spawn (&app_proc, (void*)'d'); */
|
|
|
|
for (;;) {
|
|
int ch = kb_read_key ();
|
|
|
|
if (ch < 0)
|
|
continue;
|
|
|
|
terminal_print ((char*)&ch, 1);
|
|
|
|
/* 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); */
|
|
}
|
|
}
|