2004-09-23 03:01:36 +00:00
|
|
|
/*
|
|
|
|
|
* Atomic reference counts - used by applications.
|
|
|
|
|
*
|
|
|
|
|
* We use locks to avoid the assembly of the Plan 9 versions.
|
|
|
|
|
*/
|
|
|
|
|
|
2003-09-30 17:47:42 +00:00
|
|
|
#include "threadimpl.h"
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
incref(Ref *r)
|
|
|
|
|
{
|
2003-12-17 04:34:52 +00:00
|
|
|
lock(&r->lk);
|
|
|
|
|
r->ref++;
|
|
|
|
|
unlock(&r->lk);
|
2003-09-30 17:47:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long
|
|
|
|
|
decref(Ref *r)
|
|
|
|
|
{
|
2003-12-17 04:34:52 +00:00
|
|
|
long n;
|
|
|
|
|
|
|
|
|
|
lock(&r->lk);
|
|
|
|
|
n = --r->ref;
|
|
|
|
|
unlock(&r->lk);
|
|
|
|
|
return n;
|
2003-09-30 17:47:42 +00:00
|
|
|
}
|