aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libthread/thread.c')
-rw-r--r--src/libthread/thread.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/libthread/thread.c b/src/libthread/thread.c
index 1894259b..ee73f752 100644
--- a/src/libthread/thread.c
+++ b/src/libthread/thread.c
@@ -23,17 +23,29 @@ _threaddebug(char *fmt, ...)
va_list arg;
char buf[128];
_Thread *t;
-
- return;
+ char *p;
+ static int fd = -1;
+
+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*