From 0158bceec78c7891a7ef672770bf42e65fd064dd Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 8 Jan 2020 22:47:51 -0500 Subject: libthread: run first thread in proc on system stack For pthread systems that are fussy about which stack is used, this makes sure that threadmain runs on a system stack. If you only use proccreate (never threadcreate), all threads run on system stacks. --- src/libthread/test/tspawnloop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/libthread/test') diff --git a/src/libthread/test/tspawnloop.c b/src/libthread/test/tspawnloop.c index 05636dc9..204328b8 100644 --- a/src/libthread/test/tspawnloop.c +++ b/src/libthread/test/tspawnloop.c @@ -8,7 +8,7 @@ execproc(void *v) int i, fd[3]; char buf[100], *args[3]; - i = (int)v; + i = (int)(uintptr)v; sprint(buf, "%d", i); fd[0] = dup(0, -1); fd[1] = dup(1, -1); @@ -33,7 +33,7 @@ threadmain(int argc, char **argv) c = threadwaitchan(); for(i=0;; i++){ - proccreate(execproc, (void*)i, 16384); + proccreate(execproc, (void*)(uintptr)i, 16384); w = recvp(c); if(w == nil) sysfatal("exec/recvp failed: %r"); -- cgit v1.2.3