#include "u.h" | |
#include "libc.h" | |
#include "thread.h" | |
static long | |
refadd(Ref *r, long a) | |
{ | |
long ref; | |
lock(&r->lock); | |
r->ref += a; | |
ref = r->ref; | |
unlock(&r->lock); | |
return ref; | |
} | |
long | |
incref(Ref *r) | |
{ | |
return refadd(r, 1); | |
} | |
long | |
decref(Ref *r) | |
{ | |
return refadd(r, -1); | |
} |