itlibthread: drop schedlock - plan9port - [fork] Plan 9 from user space Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/plan9port URL:git://src.adamsgaard.dk/plan9port mx1.adamsgaard.dk 70 1Log /src/plan9port/log.gph mx1.adamsgaard.dk 70 1Files /src/plan9port/files.gph mx1.adamsgaard.dk 70 1Refs /src/plan9port/refs.gph mx1.adamsgaard.dk 70 1README /src/plan9port/file/README.md.gph mx1.adamsgaard.dk 70 1LICENSE /src/plan9port/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 91ececc99741b3111c69d455bc928e871b15d766 /src/plan9port/commit/91ececc99741b3111c69d455bc928e871b15d766.gph mx1.adamsgaard.dk 70 1parent 4692dd4786f8847494d3f020bc3c05ba210adc0d /src/plan9port/commit/4692dd4786f8847494d3f020bc3c05ba210adc0d.gph mx1.adamsgaard.dk 70 hAuthor: Russ Cox URL:mailto:rsc@swtch.com mx1.adamsgaard.dk 70 iDate: Wed, 30 Dec 2020 08:41:01 -0500 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 ilibthread: drop schedlock Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iHaving two locks in the proc was causing deadlocks. Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M src/libthread/thread.c | 2 +- Err mx1.adamsgaard.dk 70 i M src/libthread/threadimpl.h | 1 - Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i2 files changed, 1 insertion(+), 2 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/src/libthread/thread.c b/src/libthread/thread.c /src/plan9port/file/src/libthread/thread.c.gph mx1.adamsgaard.dk 70 it@@ -281,7 +281,7 @@ static void Err mx1.adamsgaard.dk 70 i pthreadwakeupschedlocked(Proc *p, _Thread *self, _Thread *t) Err mx1.adamsgaard.dk 70 i { Err mx1.adamsgaard.dk 70 i _threaddebug(self, "pthreadwakeupschedlocked %p %d", p, t->id);; Err mx1.adamsgaard.dk 70 i- t->schedrend.l = &p->schedlock; Err mx1.adamsgaard.dk 70 i+ t->schedrend.l = &p->lock; Err mx1.adamsgaard.dk 70 i p->schedthread = t; Err mx1.adamsgaard.dk 70 i _procwakeup(&t->schedrend); Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 1diff --git a/src/libthread/threadimpl.h b/src/libthread/threadimpl.h /src/plan9port/file/src/libthread/threadimpl.h.gph mx1.adamsgaard.dk 70 it@@ -88,7 +88,6 @@ struct Proc Err mx1.adamsgaard.dk 70 i uint nthread; Err mx1.adamsgaard.dk 70 i uint sysproc; Err mx1.adamsgaard.dk 70 i _Procrendez runrend; Err mx1.adamsgaard.dk 70 i- Lock schedlock; Err mx1.adamsgaard.dk 70 i _Thread *schedthread; Err mx1.adamsgaard.dk 70 i void *udata; Err mx1.adamsgaard.dk 70 i Jmp sigjmp; Err mx1.adamsgaard.dk 70 .