xref: /plan9/sys/src/libthread/xincport.h (revision ab3dc52f122c98aa4bc2bd64bd2292bb7b80fba2)
19a747e4fSDavid du Colombier #include <u.h>
29a747e4fSDavid du Colombier #include <libc.h>
39a747e4fSDavid du Colombier #include <thread.h>
49a747e4fSDavid du Colombier 
59a747e4fSDavid du Colombier static Lock l;
69a747e4fSDavid du Colombier 
79a747e4fSDavid du Colombier void
_xinc(long * p)8*ab3dc52fSDavid du Colombier _xinc(long *p)
9*ab3dc52fSDavid du Colombier {
109a747e4fSDavid du Colombier 
119a747e4fSDavid du Colombier 	lock(&l);
129a747e4fSDavid du Colombier 	(*p)++;
139a747e4fSDavid du Colombier 	unlock(&l);
149a747e4fSDavid du Colombier }
159a747e4fSDavid du Colombier 
169a747e4fSDavid du Colombier long
_xdec(long * p)17*ab3dc52fSDavid du Colombier _xdec(long *p)
18*ab3dc52fSDavid du Colombier {
199a747e4fSDavid du Colombier 	long r;
209a747e4fSDavid du Colombier 
219a747e4fSDavid du Colombier 	lock(&l);
229a747e4fSDavid du Colombier 	r = --(*p);
239a747e4fSDavid du Colombier 	unlock(&l);
249a747e4fSDavid du Colombier 	return r;
259a747e4fSDavid du Colombier }
26