19 allocfidpool(void (*destroy)(Fid*))
23 f = emalloc9p(sizeof *f);
24 f->map = allocmap(incfidref);
30 freefidpool(Fidpool *p)
32 freemap(p->map, (void(*)(void*))p->destroy);
37 allocfid(Fidpool *pool, ulong fid)
41 f = emalloc9p(sizeof *f);
48 if(caninsertkey(pool->map, fid, f) == 0){
58 lookupfid(Fidpool *pool, ulong fid)
60 return lookupkey(pool->map, fid);
66 if(decref(&f->ref) == 0) {
68 closedirfile(f->rdir);
79 removefid(Fidpool *pool, ulong fid)
81 return deletekey(pool->map, fid);