#include "u.h" #include "libc.h" int tas(int *x) { /* Use the GCC builtin __sync_add_and_fetch() for optimal code */ int v = __sync_add_and_fetch(x, 1); switch(v) { case 0: case 1: return v; default: print("canlock: corrupted 0x%lux\n", v); return 1; } }