Changeset: d8f89c50e9bc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d8f89c50e9bc
Modified Files:
        monetdb5/mal/mal_profiler.c
Branch: default
Log Message:

Use the possibility of having variable number of arguments in macros.


diffs (181 lines):

diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -142,12 +142,13 @@ deactivateCounter(str name)
  * The offline processing structure is the easiest. We merely have to
  * produce a correct tuple format for the front-end.
  */
-#define log(X, Y) if (eventstream) if (mnstr_printf(eventstream, X, Y) < 0) \
-               { closeProfilerStream(); }
-#define log0(X) if (eventstream) if (mnstr_printf(eventstream, X) < 0) \
-               { closeProfilerStream(); }
-#define log2(X, Y, Z) if (eventstream) if (mnstr_printf(eventstream, X, Y, Z) 
< 0) \
-               { closeProfilerStream(); }
+#define log(...)                                                               
                                \
+       do {                                                                    
                                        \
+               if (eventstream)                                                
                                \
+                       if (mnstr_printf(eventstream, __VA_ARGS__) < 0) {       
\
+                               closeProfilerStream();                          
                        \
+                       }                                                       
                                                \
+       } while (0)
 #define flushLog() if (eventstream) mnstr_flush(eventstream);
 
 /*
@@ -186,68 +187,68 @@ offlineProfilerHeader(void)
                mal_unset_lock(mal_profileLock, "profileLock");
                return ;
        }
-       log0("# ");
+       log("# ");
        if (profileCounter[PROFevent].status) {
-               log0("event,\tstatus,\t");
+               log("event,\tstatus,\t");
        }
        if (profileCounter[PROFtime].status) {
-               log0("time,\t");
+               log("time,\t");
        }
        if (profileCounter[PROFthread].status) {
-               log0("thread,\t");
+               log("thread,\t");
        }
        if (profileCounter[PROFflow].status)
-               log0("claim,\tmemory,\t");
+               log("claim,\tmemory,\t");
        if (profileCounter[PROFfunc].status) {
-               log0("function,\t");
+               log("function,\t");
        }
        if (profileCounter[PROFpc].status) {
-               log0("pc,\t");
+               log("pc,\t");
        }
        if (profileCounter[PROFticks].status) {
-               log0("usec,\t");
+               log("usec,\t");
        }
        if (profileCounter[PROFcpu].status) {
-               log0("utime,\t");
-               log0("cutime,\t");
-               log0("stime,\t");
-               log0("cstime,\t");
+               log("utime,\t");
+               log("cutime,\t");
+               log("stime,\t");
+               log("cstime,\t");
        }
 
        if (profileCounter[PROFmemory].status) {
-               log0("maxrss,\t");
-               log0("arena,\t");
-               log0("ordblks,\t");
-               log0("smblks,\t");
-               log0("hblkhd,\t");
-               log0("hblks,\t");
-               log0("fsmblks,\t");
-               log0("uordblks,\t");
+               log("maxrss,\t");
+               log("arena,\t");
+               log("ordblks,\t");
+               log("smblks,\t");
+               log("hblkhd,\t");
+               log("hblks,\t");
+               log("fsmblks,\t");
+               log("uordblks,\t");
        }
        if (profileCounter[PROFreads].status)
-               log0("blk reads,\t");
+               log("blk reads,\t");
        if (profileCounter[PROFwrites].status)
-               log0("blk writes,\t");
+               log("blk writes,\t");
        if (profileCounter[PROFprocess].status) {
-               log0("pg reclaim,\t");
-               log0("pg faults,\t");
-               log0("swaps,\t");
-               log0("ctxt switch,\t");
-               log0("inv switch,\t");
+               log("pg reclaim,\t");
+               log("pg faults,\t");
+               log("swaps,\t");
+               log("ctxt switch,\t");
+               log("inv switch,\t");
        }
        if (profileCounter[PROFrbytes].status)
-               log0("rbytes,\t");
+               log("rbytes,\t");
        if (profileCounter[PROFwbytes].status)
-               log0("wbytes,\t");
+               log("wbytes,\t");
        if (profileCounter[PROFaggr].status)
-               log0("count,\t totalticks,\t");
+               log("count,\t totalticks,\t");
        if (profileCounter[PROFstmt].status)
-               log0("stmt,\t");
+               log("stmt,\t");
        if (profileCounter[PROFtype].status)
-               log0("types,\t");
+               log("types,\t");
        if (profileCounter[PROFuser].status)
-               log0("user,\t");
-       log0("# name\n");
+               log("user,\t");
+       log("# name\n");
        flushLog();
        mal_unset_lock(mal_profileLock, "profileLock");
 }
@@ -295,15 +296,15 @@ offlineProfilerEvent(int idx, MalBlkPtr 
 #endif
 
        /* make basic profile event tuple  */
-       log0("[ ");
+       log("[ ");
        if (profileCounter[PROFevent].status) {
                log("%d,\t", eventcounter);
        }
        if (profileCounter[PROFstart].status) {
                if ( start) {
-                       log0("\"start\",\t");
+                       log("\"start\",\t");
                } else {
-                       log0("\"done\" ,\t");
+                       log("\"done\" ,\t");
                }
        }
        if (profileCounter[PROFtime].status) {
@@ -334,7 +335,7 @@ offlineProfilerEvent(int idx, MalBlkPtr 
        }
        if (profileCounter[PROFfunc].status) {
                if (getModuleId(getInstrPtr(mb,0)) && 
getFunctionId(getInstrPtr(mb,0))) {
-                       log2("\"%s.%s\",\t", getModuleId(getInstrPtr(mb,0)), 
getFunctionId(getInstrPtr(mb,0)));
+                       log("\"%s.%s\",\t", getModuleId(getInstrPtr(mb,0)), 
getFunctionId(getInstrPtr(mb,0)));
                } else
                        log("\"%s\",\t", operatorName(pci->token));
        }
@@ -388,7 +389,7 @@ offlineProfilerEvent(int idx, MalBlkPtr 
                log(LLFMT ",\t", mb->profiler[pc].wbytes);
 
        if (profileCounter[PROFaggr].status)
-               log2("%d,\t" LLFMT ",\t", mb->profiler[pc].counter, 
mb->profiler[pc].totalticks);
+               log("%d,\t" LLFMT ",\t", mb->profiler[pc].counter, 
mb->profiler[pc].totalticks);
 
        if (profileCounter[PROFstmt].status) {
                /* generate actual call statement */
@@ -402,7 +403,7 @@ offlineProfilerEvent(int idx, MalBlkPtr 
                if (stmtq != NULL) {
                        log(" \"%s\",\t", stmtq);
                        GDKfree(stmtq);
-               } else log0(" ,\t");
+               } else log(" ,\t");
                GDKfree(stmt);
        }
        if (profileCounter[PROFtype].status) {
@@ -421,7 +422,7 @@ offlineProfilerEvent(int idx, MalBlkPtr 
        if (profileCounter[PROFuser].status) {
                log(" %d", idx);
        }
-       log0(" ]\n");
+       log(" ]\n");
        eventcounter++;
        flushLog();
        mal_unset_lock(mal_profileLock, "profileLock");
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to