Another thing, if all accesses to state->fsevent_need_reschedule are now guarded by the mutex, then it doesn't need to be volatile anymore.