URI: 
       tmore debugging - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 15cd8255b55fdca71e8054e874ffeb077a59b978
   DIR parent 230ead2fbe90864d309218048d5ad13070d536fa
  HTML Author: rsc <devnull@localhost>
       Date:   Tue,  4 Jan 2005 22:22:18 +0000
       
       more debugging
       
       Diffstat:
         M src/libthread/thread.c              |      22 ++++++++++++++++------
       
       1 file changed, 16 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/src/libthread/thread.c b/src/libthread/thread.c
       t@@ -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)());
       t@@ -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);
       t@@ -505,8 +505,9 @@ main(int argc, char **argv)
                        mainstacksize = 65536;
                _threadcreate(p, threadmainstart, nil, mainstacksize);
                scheduler(p);
       -        threaddaemonize();
       +        _threaddaemonize();
                _threadpexit();
       +        return 0;
        }
        
        /*
       t@@ -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);
       +}