81881fe298580da38c5bdb7764c05c03ec278b97 hiram Fri Jan 4 11:54:10 2013 -0800 adding cgiExitTime stderr printout to CGI binaries for apache error_log information diff --git src/hg/hgTracks/renderMain.c src/hg/hgTracks/renderMain.c index b21c36d..e89c5b2 100644 --- src/hg/hgTracks/renderMain.c +++ src/hg/hgTracks/renderMain.c @@ -96,30 +96,31 @@ verboseTime(2, "After load"); /* Initialize global image box. */ int sideSliceWidth = 0; // Just being explicit if (withLeftLabels) sideSliceWidth = (insideX - gfxBorder*3) + 2; theImgBox = imgBoxStart(database,chromName,winStart,winEnd,(!revCmplDisp),sideSliceWidth,tl.picWidth); makeActiveImage(trackList, NULL); verboseTime(2,"After makeActiveImage"); } int main(int argc, char *argv[]) { if(argc == 1) { + long enteredMainTime = clock1000(); // CGI call // htmlPushEarlyHandlers(); XXXX do I need to do this? hPrintDisable(); oldVars = hashNew(10); struct cart *cart = cartForSession(hUserCookie(), excludeVars, oldVars); // setup approriate CGI variables which tell hgTracks code what to do. cartSetBoolean(cart, "hgt.trackImgOnly", TRUE); if(cartVarExists(cart, "jsonp")) { // experimental code to support remote rendering via a jsonp callback // e.g.: /cgi-bin/hgRenderTracks?track=bamMMS9MbutiPygmy&track=...&jsonp=remoteTrackCallback&postion=...&pix=800 cartSetString(cart, "hgt.contentType", "jsonp"); @@ -131,30 +132,31 @@ // remote rendering of hgTracks PNG image based on contents of a session; caller may pass in a subset of // hgTracks parameters: e.g. db, hgsid, pix, position and tracks with explicit visibilities (e.g. knownGene=pack). cartSetString(cart, "hgt.contentType", "png"); cartSetBoolean(cart, "hgt.imageV1", TRUE); if(!cartVarExists(cart, "hgt.internal")) { if(!cartVarExists(cart, "hgt.baseShowAsm")) cartSetBoolean(cart, "hgt.baseShowAsm", TRUE); if(!cartVarExists(cart, "hgt.baseShowPos")) cartSetBoolean(cart, "hgt.baseShowPos", TRUE); } // XXXX support track filtering? - if(cartVarExists(cart, "hgt.trackNameFilter")) } doMiddle(cart); + cgiExitTime("hgRenderTracks", enteredMainTime); } else { // XXXX remove this code ... well, maybe not - this still might be useful for a stand-alone remote renderer. // command line call /* Set up some timing since we're trying to optimize things very often. */ long enteredMainTime = clock1000(); verboseTimeInit(); /* Push very early error handling - this is just * for the benefit of the cgiVarExists, which * somehow can't be moved effectively into doMiddle. */ // htmlPushEarlyHandlers();