From ad182d3872de0878e213e2cd51973c3efb7fdb81 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 4 Sep 2022 18:01:09 -0300 Subject: [PATCH] events: finish implementation --- src/sys/event.c | 4 ++-- src/sys/sched/scheduler.c | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/sys/event.c b/src/sys/event.c index 47a912d3..986c8361 100644 --- a/src/sys/event.c +++ b/src/sys/event.c @@ -49,7 +49,7 @@ int event_wait(event_t* event, bool interruptible){ addtoevent(thread, event); - // ... + sched_block(interruptible); int ret = 0; @@ -87,7 +87,7 @@ int event_signal(event_t* event, bool interruptson){ if(!thread) continue; - // ... + sched_eventsignal(event, thread); } diff --git a/src/sys/sched/scheduler.c b/src/sys/sched/scheduler.c index d0da9b30..39bfd8bd 100644 --- a/src/sys/sched/scheduler.c +++ b/src/sys/sched/scheduler.c @@ -296,10 +296,6 @@ void sched_eventsignal(event_t* event, thread_t* thread){ void sched_block(bool interruptible){ thread_t* thread = arch_getcls()->thread; - - spinlock_acquire(&queues[thread->priority].lock); - queue_remove(&queues[thread->priority], thread); - spinlock_release(&queues[thread->priority].lock); thread->state = interruptible ? THREAD_STATE_BLOCKED_INTR : THREAD_STATE_BLOCKED; @@ -314,7 +310,6 @@ void sched_init(){ timer_req* req = &arch_getcls()->schedreq; req->func = sched_timerhook; - } void sched_runinit(){