thread.c (1320B)
1 /* Public Domain --Kris Maglione */ 2 #include <unistd.h> 3 #include "ixp_local.h" 4 5 static IxpThread ixp_nothread; 6 IxpThread* ixp_thread = &ixp_nothread; 7 8 static char* 9 errbuf(void) { 10 static char errbuf[IXP_ERRMAX]; 11 12 return errbuf; 13 } 14 15 static void 16 mvoid(IxpMutex *m) { 17 USED(m); 18 return; 19 } 20 21 static int 22 mtrue(IxpMutex *m) { 23 USED(m); 24 return 1; 25 } 26 27 static int 28 mfalse(IxpMutex *m) { 29 USED(m); 30 return 0; 31 } 32 33 static void 34 rwvoid(IxpRWLock *rw) { 35 USED(rw); 36 return; 37 } 38 39 static int 40 rwtrue(IxpRWLock *rw) { 41 USED(rw); 42 return 1; 43 } 44 45 static int 46 rwfalse(IxpRWLock *m) { 47 USED(m); 48 return 0; 49 } 50 51 static void 52 rvoid(IxpRendez *r) { 53 USED(r); 54 return; 55 } 56 57 static int 58 rfalse(IxpRendez *r) { 59 USED(r); 60 return 0; 61 } 62 63 static void 64 rsleep(IxpRendez *r) { 65 USED(r); 66 eprint("rsleep called when not implemented\n"); 67 } 68 69 static IxpThread ixp_nothread = { 70 /* RWLock */ 71 .initrwlock = rwfalse, 72 .rlock = rwvoid, 73 .runlock = rwvoid, 74 .canrlock = rwtrue, 75 .wlock = rwvoid, 76 .wunlock = rwvoid, 77 .canwlock = rwtrue, 78 .rwdestroy = rwvoid, 79 /* Mutex */ 80 .initmutex = mfalse, 81 .lock = mvoid, 82 .unlock = mvoid, 83 .canlock = mtrue, 84 .mdestroy = mvoid, 85 /* Rendez */ 86 .initrendez = rfalse, 87 .sleep = rsleep, 88 .wake = rfalse, 89 .wakeall = rfalse, 90 .rdestroy = rvoid, 91 /* Other */ 92 .errbuf = errbuf, 93 .read = read, 94 .write = write, 95 .select = select, 96 }; 97