tlibthread: add proper sysfatal - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 69d1259cf9af6d288b34c4452db4c418e739f750
 (DIR) parent 64851eee5f6ba5fc9441074b9a11b9baaf064a90
 (HTM) Author: Tim Wiess <devnull@localhost>
       Date:   Sun, 20 Jul 2008 03:11:05 -0400
       
       libthread: add proper sysfatal
       
       Diffstat:
         M src/libthread/thread.c              |      16 ++++++++++++++++
       
       1 file changed, 16 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/src/libthread/thread.c b/src/libthread/thread.c
       t@@ -281,6 +281,19 @@ threadunpin(void)
                p->pinthread = nil;
        }
        
       +void
       +threadsysfatal(char *fmt, ...)
       +{
       +        char buf[256];
       +        va_list arg;
       +
       +        va_start(arg, fmt);
       +        vseprint(buf, buf+sizeof(buf), fmt, arg);
       +        __fixargv0();
       +        fprint(2, "%s: %s\n", argv0 ? argv0 : "<prog>", buf);
       +        threadexitsall(buf);
       +}
       +
        static void
        contextswitch(Context *from, Context *to)
        {
       t@@ -686,6 +699,8 @@ threadmainstart(void *v)
                threadmain(threadargc, threadargv);
        }
        
       +extern void (*_sysfatal)(char*, ...);
       +
        int
        main(int argc, char **argv)
        {
       t@@ -715,6 +730,7 @@ main(int argc, char **argv)
                _notejmpbuf = threadnotejmp;
                _pin = threadpin;
                _unpin = threadunpin;
       +        _sysfatal = threadsysfatal;
        
                _pthreadinit();
                p = procalloc();