From 91ececc99741b3111c69d455bc928e871b15d766 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 30 Dec 2020 08:41:01 -0500 Subject: libthread: drop schedlock Having two locks in the proc was causing deadlocks. --- src/libthread/thread.c | 2 +- src/libthread/threadimpl.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src') diff --git a/src/libthread/thread.c b/src/libthread/thread.c index d72bf896..79e0ec71 100644 --- a/src/libthread/thread.c +++ b/src/libthread/thread.c @@ -281,7 +281,7 @@ static void pthreadwakeupschedlocked(Proc *p, _Thread *self, _Thread *t) { _threaddebug(self, "pthreadwakeupschedlocked %p %d", p, t->id);; - t->schedrend.l = &p->schedlock; + t->schedrend.l = &p->lock; p->schedthread = t; _procwakeup(&t->schedrend); } diff --git a/src/libthread/threadimpl.h b/src/libthread/threadimpl.h index 9eddba21..fd40f252 100644 --- a/src/libthread/threadimpl.h +++ b/src/libthread/threadimpl.h @@ -88,7 +88,6 @@ struct Proc uint nthread; uint sysproc; _Procrendez runrend; - Lock schedlock; _Thread *schedthread; void *udata; Jmp sigjmp; -- cgit v1.2.3