X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=clients%2Fms_memslap.h;h=1c1b29ebe7f38163ab84f745aad80710bdb6bc35;hb=8a971e97129f99102be7452b91865325d58b4a70;hp=a2f6254ddbf7f78159733ffb9a7e2cb849f5487f;hpb=a7a011c2ea4a63368b3a96a332da00820ed402cb;p=awesomized%2Flibmemcached diff --git a/clients/ms_memslap.h b/clients/ms_memslap.h index a2f6254d..1c1b29eb 100644 --- a/clients/ms_memslap.h +++ b/clients/ms_memslap.h @@ -19,9 +19,10 @@ #include #include #include -#include +#if !defined(__cplusplus) +# include +#endif #include -#include "../config.h" #include "ms_stats.h" @@ -54,7 +55,7 @@ typedef enum OPT_BINARY_PROTOCOL= 'B', OPT_OVERWRITE= 'o', OPT_TPS= 'P', - OPT_REP_WRITE_SRV= 'p', + OPT_REP_WRITE_SRV= 'p' } ms_options_t; /* global statistic of response time */ @@ -70,28 +71,28 @@ typedef struct statistic /* global status statistic structure */ typedef struct stats { - int32_t active_conns; /* active connections */ - uint64_t bytes_read; /* read bytes */ - uint64_t bytes_written; /* written bytes */ - uint64_t obj_bytes; /* object bytes */ - uint64_t pre_cmd_get; /* previous total get command count */ - uint64_t pre_cmd_set; /* previous total set command count */ - uint64_t cmd_get; /* current total get command count */ - uint64_t cmd_set; /* current total set command count */ - uint64_t get_misses; /* total objects of get miss */ - uint64_t vef_miss; /* total objects of verification miss */ - uint64_t vef_failed; /* total objects of verification failed */ - uint64_t unexp_unget; /* total objects which is unexpired but not get */ - uint64_t exp_get; /* total objects which is expired but get */ - uint64_t pkt_disorder; /* disorder packages of UDP */ - uint64_t pkt_drop; /* packages dropped of UDP */ - uint64_t udp_timeout; /* how many times timeout of UDP happens */ + volatile uint32_t active_conns; /* active connections */ + size_t bytes_read; /* read bytes */ + size_t bytes_written; /* written bytes */ + size_t obj_bytes; /* object bytes */ + size_t pre_cmd_get; /* previous total get command count */ + size_t pre_cmd_set; /* previous total set command count */ + size_t cmd_get; /* current total get command count */ + size_t cmd_set; /* current total set command count */ + size_t get_misses; /* total objects of get miss */ + size_t vef_miss; /* total objects of verification miss */ + size_t vef_failed; /* total objects of verification failed */ + size_t unexp_unget; /* total objects which is unexpired but not get */ + size_t exp_get; /* total objects which is expired but get */ + volatile size_t pkt_disorder; /* disorder packages of UDP */ + size_t pkt_drop; /* packages dropped of UDP */ + size_t udp_timeout; /* how many times timeout of UDP happens */ } ms_stats_t; /* lock adapter */ typedef struct sync_lock { - int count; + uint32_t count; pthread_mutex_t lock; pthread_cond_t cond; } ms_sync_lock_t; @@ -101,6 +102,7 @@ typedef struct global { /* synchronize lock */ ms_sync_lock_t init_lock; + ms_sync_lock_t warmup_lock; ms_sync_lock_t run_lock; /* mutex for outputing error log synchronously when memslap crashes */