diff options
Diffstat (limited to 'src/pkg/runtime/linux/thread.c')
| -rw-r--r-- | src/pkg/runtime/linux/thread.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/pkg/runtime/linux/thread.c b/src/pkg/runtime/linux/thread.c index cc9ba161b..a1d927c7b 100644 --- a/src/pkg/runtime/linux/thread.c +++ b/src/pkg/runtime/linux/thread.c @@ -42,7 +42,7 @@ static Timespec longtime = static void futexsleep(uint32 *addr, uint32 val) { - int64 ret; + int32 ret; ret = futex(addr, FUTEX_WAIT, val, &longtime, nil, 0); if(ret >= 0 || ret == -EAGAIN || ret == -EINTR) @@ -234,7 +234,7 @@ enum void newosproc(M *m, G *g, void *stk, void (*fn)(void)) { - int64 ret; + int32 ret; int32 flags; /* @@ -248,21 +248,14 @@ newosproc(M *m, G *g, void *stk, void (*fn)(void)) | CLONE_THREAD /* revisit - okay for now */ ; + m->tls[0] = m->id; // so 386 asm can find it if(0){ - prints("newosproc stk="); - sys·printpointer(stk); - prints(" m="); - sys·printpointer(m); - prints(" g="); - sys·printpointer(g); - prints(" fn="); - sys·printpointer(fn); - prints(" clone="); - sys·printpointer(clone); - prints("\n"); + printf("newosproc stk=%p m=%p g=%p fn=%p clone=%p id=%d/%d ostk=%p\n", + stk, m, g, fn, clone, m->id, m->tls[0], &m); } ret = clone(flags, stk, m, g, fn); + if(ret < 0) *(int32*)123 = 123; } |
