26 #ifndef STATISTICS_HPP
27 #define STATISTICS_HPP
29 #include "../my_config.h"
47 #define LOCK_IN pthread_mutex_lock(&lock_mutex)
48 #define LOCK_OUT pthread_mutex_unlock(&lock_mutex)
49 #define LOCK_IN_CONST pthread_mutex_lock(const_cast<pthread_mutex_t *>(&lock_mutex))
50 #define LOCK_OUT_CONST pthread_mutex_unlock(const_cast<pthread_mutex_t *>(&lock_mutex))
54 #define LOCK_IN_CONST //
55 #define LOCK_OUT_CONST //
80 const statistics & operator = (
const statistics & ref) { detruit(); copy_from(ref);
return *
this; };
91 void incr_treated() { (this->*increment)(&treated); };
106 void sub_from_ea_treated(
const infinint & val) { (this->*sub_from)(&ea_treated, val); };
107 void sub_from_hard_links(
const infinint & val) { (this->*sub_from)(&hard_links, val); };
109 infinint get_treated()
const {
return (this->*returned)(&treated); };
135 pthread_mutex_t lock_mutex;
157 void increment_locked(
infinint * var)
164 void increment_unlocked(infinint * var)
169 void add_to_locked(infinint * var,
const infinint & val)
176 void add_to_unlocked(infinint *var,
const infinint & val)
181 infinint returned_locked(
const infinint * var)
const
192 infinint returned_unlocked(
const infinint * var)
const
197 void decrement_locked(infinint * var)
204 void decrement_unlocked(infinint * var)
209 void set_to_locked(infinint *var,
const infinint & val)
216 void set_to_unlocked(infinint *var,
const infinint & val)
221 void sub_from_unlocked(infinint *var,
const infinint & val)
226 void sub_from_locked(infinint *var,
const infinint & val)
234 void init(
bool lock);