tref.c - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
tref.c (278B)
---
     1 #include "u.h"
     2 #include "libc.h"
     3 #include "thread.h"
     4 
     5 static long
     6 refadd(Ref *r, long a)
     7 {
     8         long ref;
     9 
    10         lock(&r->lock);
    11         r->ref += a;
    12         ref = r->ref;
    13         unlock(&r->lock);
    14         return ref;
    15 }
    16 
    17 long
    18 incref(Ref *r)
    19 {
    20         return refadd(r, 1);
    21 }
    22 
    23 long
    24 decref(Ref *r)
    25 {
    26         return refadd(r, -1);
    27 }