Blame


1 76193d7c 2003-09-30 devnull #include "threadimpl.h"
2 76193d7c 2003-09-30 devnull
3 76193d7c 2003-09-30 devnull int _threaddebuglevel;
4 76193d7c 2003-09-30 devnull
5 76193d7c 2003-09-30 devnull void
6 76193d7c 2003-09-30 devnull __threaddebug(ulong flag, char *fmt, ...)
7 76193d7c 2003-09-30 devnull {
8 76193d7c 2003-09-30 devnull char buf[128];
9 76193d7c 2003-09-30 devnull va_list arg;
10 76193d7c 2003-09-30 devnull Fmt f;
11 76193d7c 2003-09-30 devnull Proc *p;
12 76193d7c 2003-09-30 devnull
13 76193d7c 2003-09-30 devnull if((_threaddebuglevel&flag) == 0)
14 76193d7c 2003-09-30 devnull return;
15 76193d7c 2003-09-30 devnull
16 76193d7c 2003-09-30 devnull fmtfdinit(&f, 2, buf, sizeof buf);
17 76193d7c 2003-09-30 devnull
18 76193d7c 2003-09-30 devnull p = _threadgetproc();
19 76193d7c 2003-09-30 devnull if(p==nil)
20 76193d7c 2003-09-30 devnull fmtprint(&f, "noproc ");
21 76193d7c 2003-09-30 devnull else if(p->thread)
22 76193d7c 2003-09-30 devnull fmtprint(&f, "%d.%d ", p->pid, p->thread->id);
23 76193d7c 2003-09-30 devnull else
24 76193d7c 2003-09-30 devnull fmtprint(&f, "%d._ ", p->pid);
25 76193d7c 2003-09-30 devnull
26 76193d7c 2003-09-30 devnull va_start(arg, fmt);
27 76193d7c 2003-09-30 devnull fmtvprint(&f, fmt, arg);
28 76193d7c 2003-09-30 devnull va_end(arg);
29 76193d7c 2003-09-30 devnull fmtprint(&f, "\n");
30 76193d7c 2003-09-30 devnull fmtfdflush(&f);
31 76193d7c 2003-09-30 devnull }
32 76193d7c 2003-09-30 devnull
33 76193d7c 2003-09-30 devnull void
34 76193d7c 2003-09-30 devnull _threadassert(char *s)
35 76193d7c 2003-09-30 devnull {
36 76193d7c 2003-09-30 devnull char buf[256];
37 76193d7c 2003-09-30 devnull int n;
38 76193d7c 2003-09-30 devnull Proc *p;
39 76193d7c 2003-09-30 devnull
40 76193d7c 2003-09-30 devnull p = _threadgetproc();
41 76193d7c 2003-09-30 devnull if(p && p->thread)
42 76193d7c 2003-09-30 devnull n = sprint(buf, "%d.%d ", p->pid, p->thread->id);
43 76193d7c 2003-09-30 devnull else
44 76193d7c 2003-09-30 devnull n = 0;
45 76193d7c 2003-09-30 devnull snprint(buf+n, sizeof(buf)-n, "%s: assertion failed\n", s);
46 76193d7c 2003-09-30 devnull write(2, buf, strlen(buf));
47 76193d7c 2003-09-30 devnull abort();
48 76193d7c 2003-09-30 devnull }