commit 91ececc99741b3111c69d455bc928e871b15d766
parent 4692dd4786f8847494d3f020bc3c05ba210adc0d
Author: Russ Cox <rsc@swtch.com>
Date: Wed, 30 Dec 2020 08:41:01 -0500
libthread: drop schedlock
Having two locks in the proc was causing deadlocks.
Diffstat:
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git 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
@@ -88,7 +88,6 @@ struct Proc
uint nthread;
uint sysproc;
_Procrendez runrend;
- Lock schedlock;
_Thread *schedthread;
void *udata;
Jmp sigjmp;