libixp

git clone git://oldgit.suckless.org/libixp/
Log | Files | Refs | LICENSE

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