From 15cd8255b55fdca71e8054e874ffeb077a59b978 Mon Sep 17 00:00:00 2001 From: rsc Date: Tue, 4 Jan 2005 22:22:18 +0000 Subject: more debugging --- src/libthread/thread.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/libthread/thread.c b/src/libthread/thread.c index 84e21717..1894259b 100644 --- a/src/libthread/thread.c +++ b/src/libthread/thread.c @@ -317,7 +317,8 @@ threadqlock(QLock *l, int block, ulong pc) _threadswitch(); if(l->owner != (*threadnow)()){ - fprint(2, "qlock pc=0x%lux owner=%p self=%p oops\n", pc, l->owner, (*threadnow)()); + fprint(2, "%s: qlock pc=0x%lux owner=%p self=%p oops\n", + argv0, pc, l->owner, (*threadnow)()); abort(); } //print("qlock wakeup %p @%#x by %p\n", l, pc, (*threadnow)()); @@ -329,10 +330,9 @@ threadqunlock(QLock *l, ulong pc) { lock(&l->l); //print("qlock unlock %p @%#x by %p (owner %p)\n", l, pc, (*threadnow)(), l->owner); - if(l->owner == nil){ - fprint(2, "qunlock pc=0x%lux owner=%p self=%p oops\n", - pc, l->owner, (*threadnow)()); - abort(); + if(l->owner != (*threadnow)()){ + fprint(2, "%s: qunlock pc=0x%lux owner=%p self=%p oops\n", + argv0, pc, l->owner, (*threadnow)()); } if((l->owner = l->waiting.head) != nil){ delthread(&l->waiting, l->owner); @@ -505,8 +505,9 @@ main(int argc, char **argv) mainstacksize = 65536; _threadcreate(p, threadmainstart, nil, mainstacksize); scheduler(p); - threaddaemonize(); + _threaddaemonize(); _threadpexit(); + return 0; } /* @@ -606,3 +607,12 @@ delproc(Proc *p) _threadprocstail = p->prev; unlock(&_threadprocslock); } + +/* + * notify - for now just use the usual mechanisms + */ +void +threadnotify(int (*f)(void*, char*), int in) +{ + atnotify(f, in); +} -- cgit v1.2.3