本文就是利用上一篇博文的 锁 ,来实现终端输出,避免产生竞争条件。
新建一个文件 console.c。
console.c
#include "console.h"
#include "../lib/kernel/print.h"
#include "../lib/std_int.h"
#include "../thread/sync.h"
#include "../thread/thread.h"
static struct lock console_lock; // 控制台锁
/* 初始化终端 */
void console_init() {
lock_init(&console_lock);
}
/* 获取终端 */
void console_acquire() {
lock_acquire(&console_lock);
}
/* 释放终端 */
void console_release