17a171a4b239e6e761e8f73a9b49451d7c918811
braney
  Wed Jun 19 17:14:25 2019 -0700
changes in response to code review (thanks Jonathan!)

diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c
index e7bfba5..cbac65e 100644
--- src/hg/lib/hubConnect.c
+++ src/hg/lib/hubConnect.c
@@ -707,56 +707,58 @@
 hDisconnectCentral(&conn);
 }
 
 struct trackDb *hubAddTracks(struct hubConnectStatus *hub, char *database)
 /* Load up stuff from data hub and return list. */
 {
 /* Load trackDb.ra file and make it into proper trackDb tree */
 struct trackDb *tdbList = NULL;
 struct trackHub *trackHub = hub->trackHub;
 
 if (trackHub != NULL)
     {
     struct trackHubGenome *hubGenome = trackHubFindGenome(trackHub, database);
     if (hubGenome != NULL)
 	{
+        char *trackDbCacheDir = cfgOption("cacheTrackDbDir");
         boolean doCache = FALSE;
-        if (sameOk(cfgOption("cacheTrackDb"), "on"))
+        if (trackDbCacheDir != NULL)
             doCache = TRUE;
+
         if (doCache)
             {
             // we have to open the trackDb file to get the udc cache to check for an update
             struct udcFile *checkCache = udcFileMayOpen(hubGenome->trackDbFile, NULL);
             time_t time = udcUpdateTime(checkCache);
             udcFileClose(&checkCache);
 
-            struct trackDb *cacheTdb = trackDbHubCache(hubGenome->trackDbFile, time);
+            struct trackDb *cacheTdb = trackDbHubCache(hubGenome->trackDbFile, time, trackDbCacheDir);
 
             if (cacheTdb != NULL)
                 return cacheTdb;
 
             memCheckPoint(); // we want to know how much memory is used to build the tdbList
             }
 
         tdbList = trackHubTracksForGenome(trackHub, hubGenome);
         tdbList = trackDbLinkUpGenerations(tdbList);
         tdbList = trackDbPolishAfterLinkup(tdbList, database);
         trackDbPrioritizeContainerItems(tdbList);
         trackHubPolishTrackNames(trackHub, tdbList);
 
         if (doCache)
-            trackDbHubCloneTdbListToSharedMem(hubGenome->trackDbFile, tdbList, memCheckPoint());
+            trackDbHubCloneTdbListToSharedMem(hubGenome->trackDbFile, tdbList, memCheckPoint(), trackDbCacheDir);
 	}
     }
 return tdbList;
 }
 
 static struct grp *grpFromHub(struct hubConnectStatus *hub)
 /* Make up a grp structur from hub */
 {
 struct grp *grp;
 AllocVar(grp);
 char name[16];
 safef(name, sizeof(name), "hub_%d", hub->id);
 grp->name = cloneString(name);
 grp->label = cloneString(hub->trackHub->shortLabel);
 return grp;