aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2020-01-13 23:26:26 -0500
committerRuss Cox <rsc@swtch.com>2020-01-13 23:26:42 -0500
commit481b596d9389076d686832e0a3c26fc7b550c532 (patch)
tree6605f94713a67aeecc8c06d2903a91efc27a86ca
parent573169dd88ac5ca0cf75d09464dddba398e83011 (diff)
downloadplan9port-481b596d9389076d686832e0a3c26fc7b550c532.tar.gz
plan9port-481b596d9389076d686832e0a3c26fc7b550c532.tar.bz2
plan9port-481b596d9389076d686832e0a3c26fc7b550c532.zip
libthread: fix fault in teardown of proc
Fixes #332.
-rw-r--r--src/libthread/thread.c1
-rw-r--r--src/libthread/threadimpl.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/libthread/thread.c b/src/libthread/thread.c
index c84af855..d041efcc 100644
--- a/src/libthread/thread.c
+++ b/src/libthread/thread.c
@@ -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
index 437503c6..76ca57e5 100644
--- a/src/libthread/threadimpl.h
+++ b/src/libthread/threadimpl.h
@@ -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);