Changeset: f31ad2b6a8a4 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f31ad2b6a8a4 Modified Files: monetdb5/mal/mal_profiler.c Branch: mutation Log Message:
Merge with default diffs (78 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 @@ -225,28 +225,31 @@ deactivateCounter(str name) * It uses a local logbuffer[LOGLEN] and logbase, logtop, loglen */ #define LOGLEN 8192 -#define lognew() loglen = 0; logbase = logbuffer; *logbase = 0; +#define lognew() do{ int e; loglen = 0; logbase = logbuffer; *logbase = 0;\ + MT_lock_set(&mal_profileLock, "profileLock"); \ + eventcounter++; e= eventcounter; \ + MT_lock_unset(&mal_profileLock, "profileLock"); \ + if (profileCounter[PROFevent].status && e) \ + (void) snprintf(logbase+loglen, LOGLEN -1 - loglen, "[ %d,\t",e); \ + else \ + (void) snprintf(logbase+loglen, LOGLEN -1 - loglen, "[ "); \ + loglen += (int) strlen(logbase+loglen); \ + } while (0) + #define logadd(...) \ do { \ (void) snprintf(logbase+loglen, LOGLEN -1 - loglen, __VA_ARGS__); \ loglen += (int) strlen(logbase+loglen); \ } while (0) -static void logsent(int header, char *logbuffer) +static void logsent(char *logbuffer, int loglen) { - MT_lock_set(&mal_profileLock, "profileLock"); if (eventstream) { - if ( header) - mnstr_printf(eventstream,"%s\n", logbuffer); - else - if (profileCounter[PROFevent].status && eventcounter) - mnstr_printf(eventstream,"[ %d,\t%s ]\n", eventcounter, logbuffer); - else - mnstr_printf(eventstream,"[ %s ]\n", logbuffer); + MT_lock_set(&mal_profileLock, "profileLock"); \ + mnstr_write(eventstream, logbuffer, loglen,1); mnstr_flush(eventstream); + MT_lock_unset(&mal_profileLock, "profileLock"); \ } - eventcounter++; - MT_lock_unset(&mal_profileLock, "profileLock"); } #define flushLog() if (eventstream) mnstr_flush(eventstream); @@ -360,8 +363,8 @@ offlineProfilerHeader(void) logadd("types,\t"); if (profileCounter[PROFuser].status) logadd("user,\t"); - logadd("# name"); - logsent(1, logbuffer); + logadd("# name \n"); + logsent(logbuffer, loglen); } void @@ -538,7 +541,8 @@ offlineProfilerEvent(int idx, MalBlkPtr if (profileCounter[PROFuser].status) { logadd(" %d", idx); } - logsent(0, logbuffer); + logadd("]\n"); + logsent(logbuffer, loglen); } /* * Postprocessing events @@ -1503,7 +1507,8 @@ void profilerHeartbeatEvent(str msg) //logadd("\"\",\t"); //if (profileCounter[PROFuser].status) //logadd(" 0"); - logsent(0, logbuffer); + logadd("]\n"); + logsent(logbuffer, loglen); } static MT_Id hbthread; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list