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();