Lines Matching refs:fVariable
54 : fVariable(NULL)
61 // We can use an "unsafe" non-atomic access of fVariable here, since we only
63 if (fVariable != NULL)
95 return atomic_pointer_get(&fVariable);
102 ASSERT(fVariable == NULL);
105 fVariable = variable;
107 fVariable->fEntries.Add(this);
108 atomic_add(&fVariable->fEntriesCount, 1);
119 ConditionVariable* variable = atomic_pointer_get(&fVariable);
123 // We thus cannot access fVariable, and must spin until it is cleared.
125 while (atomic_pointer_get(&fVariable) != NULL) {
136 if (atomic_pointer_get(&fVariable) == NULL) {
143 // the try_acquire in which the variable might clear out our fVariable.
153 if (fVariable->fEntries.Contains(this))
154 fVariable->fEntries.Remove(this);
156 atomic_pointer_set(&fVariable, (ConditionVariable*)NULL);
168 "disabled, entry: %p, variable: %p", this, fVariable);
173 ConditionVariable* variable = atomic_pointer_get(&fVariable);
395 atomic_pointer_set(&entry->fVariable, (ConditionVariable*)NULL);
412 // in case it tries to re-block itself immediately after we unset fVariable.
419 // (We may not validly access the entry once we unset its fVariable.)
420 atomic_pointer_set(&entry->fVariable, (ConditionVariable*)NULL);
424 // fVariable, because otherwise it will wake up before thread_unblock returns