commit - 00c6cee80a371a38984a44945df40c4136173e81
commit + d93cc14ecee8fbb0dc0fc746713aba7ee0979c4c
blob - 683ddd12710973a6da4271e918ecddf8281491a0
blob + 17e8c12bb8ec7bddad7d1c9b15701e33d74c0f0c
--- src/libthread/Linux.c
+++ src/libthread/Linux.c
break;
}
}
- fprint(2, "myperproc %d: cannot find self\n", pid);
+ fprint(2, "myperproc %d (%s): cannot find self\n", pid, argv0);
abort();
return nil;
}
blob - ff748acc169efa6673f5658f3ea104282d2ffebe
blob + acd56fa2ef285dede473a9f06fced8be142aa41a
--- src/libthread/thread.c
+++ src/libthread/thread.c
snprint(buf, sizeof buf, "/tmp/%s.tlog", p);
if((fd = create(buf, OWRITE, 0666)) < 0)
fd = open("/dev/null", OWRITE);
+ if(fd >= 0 && fd != 2){
+ dup(fd, 2);
+ close(fd);
+ fd = 2;
+ }
}
va_start(arg, fmt);
threadexitsall(p->msg);
unlock(&threadnproclock);
unlock(&p->lock);
+ _threadsetproc(nil);
free(p);
}
static int threadargc;
static char **threadargv;
int mainstacksize;
-
+extern int _p9usepwlibrary; /* getgrgid etc. smash the stack - tell _p9dir just say no */
static void
threadmainstart(void *v)
{
* This means the pthread implementation is not suitable for
* running under libthread. Time to write your own. Sorry.
*/
+ _p9usepwlibrary = 0;
threadmainproc = proc();
threadmain(threadargc, threadargv);
}