windows atomic
This commit is contained in:
parent
010d3fc860
commit
881df9d936
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#if !defined(WINDOWS)
|
#if !defined(WINDOWS)
|
||||||
#define C11_ATOMIC
|
#define C11_ATOMIC
|
||||||
|
#else
|
||||||
|
//#define DOUBLE_ATOMIC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef C11_ATOMIC
|
#ifdef C11_ATOMIC
|
||||||
|
@ -33,7 +35,11 @@ struct taos_metric_sample {
|
||||||
#ifdef C11_ATOMIC
|
#ifdef C11_ATOMIC
|
||||||
_Atomic double r_value; /**< r_value is the value of the metric sample */
|
_Atomic double r_value; /**< r_value is the value of the metric sample */
|
||||||
#else
|
#else
|
||||||
|
#ifdef DOUBLE_ATOMIC
|
||||||
double r_value; /**< r_value is the value of the metric sample */
|
double r_value; /**< r_value is the value of the metric sample */
|
||||||
|
#else
|
||||||
|
int64_t r_value;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,11 @@ int taos_metric_sample_add(taos_metric_sample_t *self, double r_value) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#ifdef DOUBLE_ATOMIC
|
||||||
atomic_fetch_add_double(&self->r_value, r_value);
|
atomic_fetch_add_double(&self->r_value, r_value);
|
||||||
|
#else
|
||||||
|
atomic_fetch_add_64(&self->r_value, r_value);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -103,7 +107,11 @@ int taos_metric_sample_sub(taos_metric_sample_t *self, double r_value) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#ifdef DOUBLE_ATOMIC
|
||||||
atomic_fetch_sub_double(&self->r_value, r_value);
|
atomic_fetch_sub_double(&self->r_value, r_value);
|
||||||
|
#else
|
||||||
|
atomic_fetch_sub_64(&self->r_value, r_value);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -118,7 +126,11 @@ int taos_metric_sample_set(taos_metric_sample_t *self, double r_value) {
|
||||||
#ifdef C11_ATOMIC
|
#ifdef C11_ATOMIC
|
||||||
atomic_store(&self->r_value, r_value);
|
atomic_store(&self->r_value, r_value);
|
||||||
#else
|
#else
|
||||||
|
#ifdef DOUBLE_ATOMIC
|
||||||
atomic_store_double(&self->r_value, r_value);
|
atomic_store_double(&self->r_value, r_value);
|
||||||
|
#else
|
||||||
|
atomic_store_64(&self->r_value, r_value);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -140,7 +152,11 @@ int taos_metric_sample_exchange(taos_metric_sample_t *self, double r_value, doub
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
#ifdef DOUBLE_ATOMIC
|
||||||
*old_value = atomic_exchange_double(&self->r_value, r_value);
|
*old_value = atomic_exchange_double(&self->r_value, r_value);
|
||||||
|
#else
|
||||||
|
*old_value = atomic_exchange_64(&self->r_value, r_value);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue