diff options
author | rsc <devnull@localhost> | 2005-01-18 20:53:12 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-01-18 20:53:12 +0000 |
commit | 803292c631c8e80a0596a011a901e72c8e0e0edc (patch) | |
tree | 4784f0206d5d25457cee87227eebe148080ac360 /src | |
parent | 1c8159def559fc9bcf5070d90901c84f996ab59a (diff) | |
download | plan9port-803292c631c8e80a0596a011a901e72c8e0e0edc.tar.gz plan9port-803292c631c8e80a0596a011a901e72c8e0e0edc.tar.bz2 plan9port-803292c631c8e80a0596a011a901e72c8e0e0edc.zip |
proccreate race
Diffstat (limited to 'src')
-rw-r--r-- | src/libthread/thread.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libthread/thread.c b/src/libthread/thread.c index b154ce6e..ff22bbaa 100644 --- a/src/libthread/thread.c +++ b/src/libthread/thread.c @@ -171,13 +171,15 @@ threadcreate(void (*fn)(void*), void *arg, uint stack) int proccreate(void (*fn)(void*), void *arg, uint stack) { + int id; _Thread *t; Proc *p; p = procalloc(); t = _threadcreate(p, fn, arg, stack); + id = t->id; /* t might be freed after _procstart */ _procstart(p, scheduler); - return t->id; + return id; } void |