mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-29 05:38:21 +00:00
logging: make term and printf smp safe
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
#include <mutex.h>
|
||||
|
||||
mutex_t printf_mutex;
|
||||
|
||||
static void nohook(char c) {
|
||||
|
||||
}
|
||||
@@ -12,3 +16,7 @@ void _putchar(char c) {
|
||||
void logging_sethook(void (*fun)(char)) {
|
||||
hook = fun;
|
||||
}
|
||||
|
||||
void logging_init() {
|
||||
MUTEX_INIT(&printf_mutex);
|
||||
}
|
||||
|
||||
@@ -20,9 +20,12 @@ static void *internalalloc(size_t n) {
|
||||
}
|
||||
|
||||
static struct flanterm_context *term_ctx;
|
||||
static mutex_t term_mutex;
|
||||
|
||||
void term_write(char *str, size_t count) {
|
||||
MUTEX_ACQUIRE(&term_mutex, false);
|
||||
flanterm_write(term_ctx, str, count);
|
||||
MUTEX_RELEASE(&term_mutex);
|
||||
}
|
||||
|
||||
void term_putchar(char c) {
|
||||
@@ -55,4 +58,6 @@ void term_init() {
|
||||
ys = term_ctx->rows;
|
||||
fbxs = fb->width;
|
||||
fbys = fb->height;
|
||||
|
||||
MUTEX_INIT(&term_mutex);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user