diff options
| author | Charles Forsyth <charles.forsyth@gmail.com> | 2019-08-21 15:21:24 +0000 |
|---|---|---|
| committer | Charles Forsyth <charles.forsyth@gmail.com> | 2019-08-21 15:21:24 +0000 |
| commit | 8a003973f13c53f37de48c6c635500b5a0988cfb (patch) | |
| tree | c31d09069228de059225293e8cbd91e7758b27d3 /emu/port/kproc-pthreads.c | |
| parent | 230871f7e16b4cbbb77cbf184bd16d93601fe3b7 (diff) | |
| parent | e09f600591d16a8badf8678ab7606eb00bca98c2 (diff) | |
Merged in nbuwe/inferno-os/NetBSD/pthreads (pull request #24)
NetBSD/pthreads
Diffstat (limited to 'emu/port/kproc-pthreads.c')
| -rw-r--r-- | emu/port/kproc-pthreads.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/emu/port/kproc-pthreads.c b/emu/port/kproc-pthreads.c index 32053794..c6caded6 100644 --- a/emu/port/kproc-pthreads.c +++ b/emu/port/kproc-pthreads.c @@ -12,6 +12,13 @@ #include <errno.h> #include <semaphore.h> +#ifdef __NetBSD__ +#include <sched.h> +#define pthread_yield() (sched_yield()) +#define PTHREAD_STACK_MIN ((size_t)sysconf(_SC_THREAD_STACK_MIN)) +#endif + + typedef struct Osdep Osdep; struct Osdep { sem_t sem; @@ -115,6 +122,12 @@ kproc(char *name, void (*func)(void*), void *arg, int flags) panic("kproc: no memory"); os->self = 0; /* set by tramp */ sem_init(&os->sem, 0, 0); +#if defined(__NetBSD__) && defined(__powerpc__) + { /* XXX: Work around a problem on macppc with kernel semaphores. */ + int val; + sem_getvalue(&os->sem, &val); + } +#endif p->os = os; if(flags & KPDUPPG) { |
