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;