1 | #ifndef TA_H 2 | #define TA_H 3 | 4 | #include <glib.h> 5 | #include <pthread.h> 6 | #include <stdio.h> 7 | 8 | #include "stubs.h" 9 | #include "memwrap.h" 10 | #include "sk.h" 11 | #include "timediff.h" 12 | 13 | /* thread activity monitor */ 14 | #define TA_TYPE_LEN 16 15 | #define TA_ACT_LEN 256 16 | #define TA_PRINT_LEN (TA_ACT_LEN+64) 17 | 18 | typedef struct 19 | { 20 | pthread_t thread_id; /* thread id */ 21 | ut_timer_t sessionstart; /* time the session started */ 22 | ut_timer_t taskstart; /* time the last task started */ 23 | int sock; /* socket */ 24 | sk_conn_st *condat; /* sk's connection data struct */ 25 | char type[TA_TYPE_LEN]; 26 | char activity[TA_ACT_LEN]; /* current activity (eg query) */ 27 | int tasks; /* number of activities(used to calculate the average) */ 28 | } ta_str_t; 29 | 30 | 31 | #ifdef TA_IMPL 32 | /* GLOBALs (private to the module)*/ 33 | GList *ta_list = NULL; 34 | pthread_mutex_t ta_mutex = PTHREAD_MUTEX_INITIALIZER; 35 | #endif 36 | 37 | #ifdef __cplusplus 38 | extern "C" { 39 | #endif 40 | 41 | 42 | /* prototypes */ 43 | void TA_add(int sock, char *type); 44 | void TA_delete(void); 45 | void TA_setactivity(char *activity); 46 | void TA_setcondat(sk_conn_st *condat); 47 | char * TA_tostring(void); 48 | void TA_increment(void); 49 | void TA_trigger(char *type, int sock, pthread_t thread_id); 50 | void TA_reset_counters(pthread_t thread_id); 51 | 52 | #ifdef __cplusplus 53 | } 54 | #endif 55 | 56 | 57 | #endif 58 |