diff options
Diffstat (limited to 'turbopool.c')
-rw-r--r-- | turbopool.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/turbopool.c b/turbopool.c deleted file mode 100644 index 8011c18..0000000 --- a/turbopool.c +++ /dev/null @@ -1,60 +0,0 @@ -#include <u.h> -#include <libc.h> -#include <thread.h> -#include <draw.h> -#include <memdraw.h> -#include <geometry.h> -#include "libobj/obj.h" -#include "graphics.h" -#include "internal.h" - -static void -_turboproc(void *arg) -{ - Turbopool *p; - Turbotask *t; - - threadsetname("turboproc"); - - p = arg; - - while((t = recvp(p->subq)) != nil){ - t->fn(t->arg); - free(t); - } -} - -Turbopool * -mkturbopool(ulong nprocs) -{ - Turbopool *p; - - p = emalloc(sizeof *p); - memset(p, 0, sizeof *p); - p->nprocs = nprocs; - p->subq = chancreate(sizeof(void*), nprocs); - while(nprocs--) - proccreate(_turboproc, p, mainstacksize); - return p; -} - -void -turbopoolexec(Turbopool *p, void (*fn)(void*), void *arg) -{ - Turbotask *t; - - t = emalloc(sizeof *t); - t->fn = fn; - t->arg = arg; - - sendp(p->subq, t); -} - -void -rmturbopool(Turbopool *p) -{ - while(p->nprocs--) - sendp(p->subq, nil); - chanfree(p->subq); - free(p); -} |