Commit Diff


commit - 9b4de09d413c43059afcd75ceba4d2adcdc0a0a8
commit + af89fc108d61625959704a08ffdd44adfd86a9d4
blob - 0bf7946840ff7bf69283564d9ad65559579ba10e
blob + 30b031c73c94d2b9b478c4bcfc1bb8865467aa33
--- src/libthread/ioproc.c
+++ src/libthread/ioproc.c
@@ -13,7 +13,7 @@ iointerrupt(Ioproc *io)
 {
 	if(!io->inuse)
 		return;
-	fprint(2, "bug: cannot iointerrupt yet\n");
+	fprint(2, "bug: cannot iointerrupt %p yet\n", io);
 }
 
 static void
blob - 2ad80878a429de33d164fbd91f681f6d35be0b50
blob + ce86d146c803a4569c7a67fc5035391ee981f4f6
--- src/libthread/iorw.c
+++ src/libthread/iorw.c
@@ -123,7 +123,8 @@ _iowrite(va_list *arg)
 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
blob - 1894259bfb3840271eac67659e3ab54dd6606a04
blob + ee73f752c352d3b658d7fd49d564f616f7fa1985
--- src/libthread/thread.c
+++ src/libthread/thread.c
@@ -23,17 +23,29 @@ _threaddebug(char *fmt, ...)
 	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*