more debugging
diff --git a/src/libthread/ioproc.c b/src/libthread/ioproc.c index 0bf7946..30b031c 100644 --- a/src/libthread/ioproc.c +++ b/src/libthread/ioproc.c
@@ -13,7 +13,7 @@ { if(!io->inuse) return; - fprint(2, "bug: cannot iointerrupt yet\n"); + fprint(2, "bug: cannot iointerrupt %p yet\n", io); } static void
diff --git a/src/libthread/iorw.c b/src/libthread/iorw.c index 2ad8087..ce86d14 100644 --- a/src/libthread/iorw.c +++ b/src/libthread/iorw.c
@@ -123,7 +123,8 @@ long iowrite(Ioproc *io, int fd, void *a, long n) { - return iocall(io, _iowrite, fd, a, n); + n = iocall(io, _iowrite, fd, a, n); + return n; } static long
diff --git a/src/libthread/thread.c b/src/libthread/thread.c index 1894259..ee73f75 100644 --- a/src/libthread/thread.c +++ b/src/libthread/thread.c
@@ -23,17 +23,29 @@ va_list arg; char buf[128]; _Thread *t; + char *p; + static int fd = -1; - return; +return; + if(fd < 0){ + p = strrchr(argv0, '/'); + if(p) + p++; + else + p = argv0; + snprint(buf, sizeof buf, "/tmp/%s.tlog", p); + if((fd = create(buf, OWRITE, 0666)) < 0) + fd = open("/dev/null", OWRITE); + } va_start(arg, fmt); vsnprint(buf, sizeof buf, fmt, arg); va_end(arg); t = proc()->thread; if(t) - fprint(2, "%d.%d: %s\n", getpid(), t->id, buf); + fprint(fd, "%d.%d: %s\n", getpid(), t->id, buf); else - fprint(2, "%d._: %s\n", getpid(), buf); + fprint(fd, "%d._: %s\n", getpid(), buf); } static _Thread*