From 74f95c5696335b02d768815fea2940bf089d057f Mon Sep 17 00:00:00 2001
From: Christian Cunningham <cc@localhost>
Date: Fri, 18 Mar 2022 13:21:06 -0700
Subject: Fixed Mutex Locking bug

---
 src/cpu/irq.c      | 1 +
 src/sys/schedule.c | 4 ++--
 src/tests/test.c   | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/cpu/irq.c b/src/cpu/irq.c
index 6a5b43f..694742a 100644
--- a/src/cpu/irq.c
+++ b/src/cpu/irq.c
@@ -33,6 +33,7 @@ void c_irq_handler(void)
 				// Handle the recieved data
 				// Ctrl+T to toggle timer
 				if(data == 0x14) {
+					uart_scheduler();
 					unsigned long timer_status;
 					asm volatile("mrc p15, 0, %0, c14, c3, 1" : "=r"(timer_status));
 					if(timer_status == 0) {
diff --git a/src/sys/schedule.c b/src/sys/schedule.c
index 748f7ed..4f8feff 100644
--- a/src/sys/schedule.c
+++ b/src/sys/schedule.c
@@ -454,8 +454,8 @@ void sched_mutex_resurrect(void* m)
 	// Restore the original priority level
 	if (op != 0xFF) {
 		struct Entry* tentry = pop_thread_from_queue(THREAD_READY, p);
-		((struct Thread*)entry->value)->priority = op;
-		((struct Thread*)entry->value)->old_priority = 0xFF;
+		((struct Thread*)tentry->value)->priority = op;
+		((struct Thread*)tentry->value)->old_priority = 0xFF;
 		prepend_thread_to_queue(tentry->value, THREAD_READY, op);
 	}
 }
diff --git a/src/tests/test.c b/src/tests/test.c
index 1bc6c9a..0c3ffb0 100644
--- a/src/tests/test.c
+++ b/src/tests/test.c
@@ -148,6 +148,6 @@ void btest(void)
 {
 	x = 0;
 	add_thread(ctest1, 0, 3);
-	//add_thread(stest1, 0, 6);
-	//add_thread(stest2, 0, 7);
+	add_thread(stest1, 0, 6);
+	add_thread(stest2, 0, 7);
 }
-- 
cgit v1.2.1