libthread: drop schedlock

Having two locks in the proc was causing deadlocks.
This commit is contained in:
Russ Cox 2020-12-30 08:41:01 -05:00
parent 4692dd4786
commit 91ececc997
2 changed files with 1 additions and 2 deletions

View file

@ -281,7 +281,7 @@ static void
pthreadwakeupschedlocked(Proc *p, _Thread *self, _Thread *t) pthreadwakeupschedlocked(Proc *p, _Thread *self, _Thread *t)
{ {
_threaddebug(self, "pthreadwakeupschedlocked %p %d", p, t->id);; _threaddebug(self, "pthreadwakeupschedlocked %p %d", p, t->id);;
t->schedrend.l = &p->schedlock; t->schedrend.l = &p->lock;
p->schedthread = t; p->schedthread = t;
_procwakeup(&t->schedrend); _procwakeup(&t->schedrend);
} }

View file

@ -88,7 +88,6 @@ struct Proc
uint nthread; uint nthread;
uint sysproc; uint sysproc;
_Procrendez runrend; _Procrendez runrend;
Lock schedlock;
_Thread *schedthread; _Thread *schedthread;
void *udata; void *udata;
Jmp sigjmp; Jmp sigjmp;