aboutsummaryrefslogtreecommitdiff
path: root/src/libthread
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2009-08-17 17:29:44 -0700
committerRuss Cox <rsc@swtch.com>2009-08-17 17:29:44 -0700
commit0829f75bba8a5eb60a7f46e21aa266736b4c4bab (patch)
treec5966ec780f68a8ae0c9aec1932e5f4147fcd180 /src/libthread
parent5186b55afc97730b733a85cdcb38d6ee7fdd32c7 (diff)
downloadplan9port-0829f75bba8a5eb60a7f46e21aa266736b4c4bab.tar.gz
plan9port-0829f75bba8a5eb60a7f46e21aa266736b4c4bab.tar.bz2
plan9port-0829f75bba8a5eb60a7f46e21aa266736b4c4bab.zip
libthread: make page work on OS X
Diffstat (limited to 'src/libthread')
-rw-r--r--src/libthread/exec.c1
-rw-r--r--src/libthread/thread.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/libthread/exec.c b/src/libthread/exec.c
index 3c71e4b1..1875eb98 100644
--- a/src/libthread/exec.c
+++ b/src/libthread/exec.c
@@ -62,6 +62,7 @@ _threadspawn(int fd[3], char *cmd, char *argv[])
int i, n, p[2], pid;
char exitstr[100];
+ notifyoff("sys: child"); /* do not let child note kill us */
if(pipe(p) < 0)
return -1;
if(fcntl(p[0], F_SETFD, 1) < 0 || fcntl(p[1], F_SETFD, 1) < 0){
diff --git a/src/libthread/thread.c b/src/libthread/thread.c
index 94910f2c..06230f53 100644
--- a/src/libthread/thread.c
+++ b/src/libthread/thread.c
@@ -155,6 +155,10 @@ _threadcreate(Proc *p, void (*fn)(void*), void *arg, uint stack)
{
_Thread *t;
+ /* defend against bad C libraries */
+ if(stack < (256<<10))
+ stack = 256<<10;
+
t = threadalloc(fn, arg, stack);
t->proc = p;
addthreadinproc(p, t);