30 #ifndef STATISTICS_HPP
31 #define STATISTICS_HPP
33 #include "../my_config.h"
51 #define LOCK_IN pthread_mutex_lock(&lock_mutex)
52 #define LOCK_OUT pthread_mutex_unlock(&lock_mutex)
53 #define LOCK_IN_CONST pthread_mutex_lock(const_cast<pthread_mutex_t *>(&lock_mutex))
54 #define LOCK_OUT_CONST pthread_mutex_unlock(const_cast<pthread_mutex_t *>(&lock_mutex))
58 #define LOCK_IN_CONST //
59 #define LOCK_OUT_CONST //
84 const statistics & operator = (
const statistics & ref) { detruit(); copy_from(ref);
return *
this; };
95 void incr_treated() { (this->*increment)(&treated); };
110 void sub_from_ea_treated(
const infinint & val) { (this->*sub_from)(&ea_treated, val); };
111 void sub_from_hard_links(
const infinint & val) { (this->*sub_from)(&hard_links, val); };
113 infinint get_treated()
const {
return (this->*returned)(&treated); };
139 pthread_mutex_t lock_mutex;
161 void increment_locked(
infinint * var)
168 void increment_unlocked(infinint * var)
173 void add_to_locked(infinint * var,
const infinint & val)
180 void add_to_unlocked(infinint *var,
const infinint & val)
185 infinint returned_locked(
const infinint * var)
const
196 infinint returned_unlocked(
const infinint * var)
const
201 void decrement_locked(infinint * var)
208 void decrement_unlocked(infinint * var)
213 void set_to_locked(infinint *var,
const infinint & val)
220 void set_to_unlocked(infinint *var,
const infinint & val)
225 void sub_from_unlocked(infinint *var,
const infinint & val)
230 void sub_from_locked(infinint *var,
const infinint & val)
238 void init(
bool lock);