tlibthread: fix fault in teardown of proc - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 481b596d9389076d686832e0a3c26fc7b550c532
parent 573169dd88ac5ca0cf75d09464dddba398e83011
Author: Russ Cox 
Date:   Mon, 13 Jan 2020 23:26:26 -0500

libthread: fix fault in teardown of proc

Fixes #332.

Diffstat:
  M src/libthread/thread.c              |       1 +
  M src/libthread/threadimpl.h          |       2 +-

2 files changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/src/libthread/thread.c b/src/libthread/thread.c
t@@ -429,6 +429,7 @@ Out:
         unlock(&p->lock);
         _threadsetproc(nil);
         free(p);
+        _threadpexit();
 }
 
 void
diff --git a/src/libthread/threadimpl.h b/src/libthread/threadimpl.h
t@@ -197,7 +197,7 @@ extern Channel *_dowaitchan;
 
 extern void _procstart(Proc*, void (*fn)(Proc*));
 extern _Thread *_threadcreate(Proc*, void(*fn)(void*), void*, uint);
-extern void _threadexit(void);
+extern void _procexit(void);
 extern Proc *_threadproc(void);
 extern void _threadsetproc(Proc*);
 extern int _threadlock(Lock*, int, ulong);