diff options
-rw-r--r-- | src/libthread/PowerMacintosh.c | 12 | ||||
-rw-r--r-- | src/libthread/exec-unix.c | 3 | ||||
-rw-r--r-- | src/libthread/sun4u.c | 12 |
3 files changed, 26 insertions, 1 deletions
diff --git a/src/libthread/PowerMacintosh.c b/src/libthread/PowerMacintosh.c index 12d180e5..21f6041d 100644 --- a/src/libthread/PowerMacintosh.c +++ b/src/libthread/PowerMacintosh.c @@ -25,3 +25,15 @@ _threadinitstack(Thread *t, void (*f)(void*), void *arg) t->sched.sp = (ulong)tos-80; } +void +_threadinswitch(int enter) +{ + USED(enter); +} + +void +_threadstacklimit(void *addr) +{ + USED(addr); +} + diff --git a/src/libthread/exec-unix.c b/src/libthread/exec-unix.c index a4a90d8b..3d4dfcac 100644 --- a/src/libthread/exec-unix.c +++ b/src/libthread/exec-unix.c @@ -115,7 +115,8 @@ threadexecl(Channel *pidc, int fd[3], char *f, ...) args[n] = 0; va_end(arg); - _threadexec(pidc, fd, f, args, 1); + if(_threadexec(pidc, fd, f, args, 1) >= 0) + threadexits(nil); } static void diff --git a/src/libthread/sun4u.c b/src/libthread/sun4u.c index 0c298c62..6312dac9 100644 --- a/src/libthread/sun4u.c +++ b/src/libthread/sun4u.c @@ -39,3 +39,15 @@ _threadinitstack(Thread *t, void (*f)(void*), void *arg) if(0) print("tis %x %x at %x\n", f, arg, t->sched.sp); } +void +_threadinswitch(int enter) +{ + USED(enter); +} + +void +_threadstacklimit(void *addr) +{ + USED(addr); +} + |