15 if (state != ZERO && state != BUSY && state != DONE) {
16 debug(CLOD_DEBUG_THREAD,
"called clod_once_do with an invalid value.");
20 if (state == ZERO && clod_atomic_cas(once, &state, BUSY))
23 while (state == BUSY) {
24 for (
int i = 0; i < 500 && state == BUSY; i++) {
26 state = clod_atomic_load(once);
30 state = clod_atomic_load(once);