start of new file
[IRC.git] / Robust / src / Runtime / DSTM / interface / signal.c
1 #include "dstm.h"
2 #include "addPrefetchEnhance.h"
3 #include <signal.h>
4
5 extern int numTransAbort;
6 extern int numTransCommit;
7 extern int nchashSearch;
8 extern int nmhashSearch;
9 extern int nprehashSearch;
10 extern int nRemoteSend;
11 extern int numprefetchsites;
12 void handle();
13 extern pfcstats_t *evalPrefetch;
14
15 void transStatsHandler(int sig, siginfo_t* info, void *context) {
16 #ifdef TRANSSTATS
17   printf("******  Transaction Stats   ******\n");
18   printf("numTransAbort = %d\n", numTransAbort);
19   printf("numTransCommit = %d\n", numTransCommit);
20   printf("nchashSearch = %d\n", nchashSearch);
21   printf("nmhashSearch = %d\n", nmhashSearch);
22   printf("nprehashSearch = %d\n", nprehashSearch);
23   printf("nRemoteReadSend = %d\n", nRemoteSend);
24   int i;
25   //TODO Remove later
26   /*
27   for(i=0; i<numprefetchsites; i++) {
28     printf("siteid = %d,  callCount = %d\n", i, evalPrefetch[i].callcount);
29   }
30   */
31   exit(0);
32 #endif
33 }
34
35 void handle() {
36 #ifdef TRANSSTATS
37   struct sigaction siga;
38   siga.sa_handler = NULL;
39   siga.sa_flags = SA_SIGINFO;
40   siga.sa_flags = 0;
41   siga.sa_sigaction = &transStatsHandler;
42   sigemptyset(&siga.sa_mask);
43   sigaction(SIGUSR1, &siga, 0);
44 #endif
45 }