6f949e90b1ba3de976455fbcf9da21897761d134
markd
  Fri Oct 29 16:11:58 2021 -0700
add timeout option to pipeline to allow kill long-running pipelines, especially ones run from CGIs

diff --git src/hg/cgilib/gtexBoxplot.c src/hg/cgilib/gtexBoxplot.c
index 3813f93..145d16e 100644
--- src/hg/cgilib/gtexBoxplot.c
+++ src/hg/cgilib/gtexBoxplot.c
@@ -126,31 +126,31 @@
     chopSuffixAt(tsv->description, '(');
     for (i=0; i<count; i++)
         fprintf(f, "%d\t%s\t%0.3f\n", sampleId++, tsv->description, tsv->vals[i]);
     }
 fclose(f);
 
 // Plot to PNG file
 if (!pngTn)
     return FALSE;
 trashDirFile(pngTn, "hgc", "gtexGene", ".png");
 
 /* Exec R in quiet mode, without reading/saving environment or workspace */
 char *pipeCmd[] = {"Rscript","--vanilla","--slave","hgcData/gtexBoxplot.R", 
     geneName, dfTn.forCgi, pngTn->forHtml, 
     doLogTransform ? "log=TRUE" : "log=FALSE", "order=alpha", version, NULL};
-struct pipeline *pl = pipelineOpen1(pipeCmd, pipelineWrite | pipelineNoAbort, "/dev/null", NULL);
+struct pipeline *pl = pipelineOpen1(pipeCmd, pipelineWrite | pipelineNoAbort, "/dev/null", NULL, 0);
 int ret = pipelineWait(pl);
 //NOTE: use "order=score" to order bargraph by median RPKM, descending
 
 if (ret == 0)
     return TRUE;
 return FALSE;
 }
 
 boolean gtexGeneBoxplot(char *geneId, char *geneName, char *version, 
                                 boolean doLogTransform, struct tempName *pngTn)
 /* Create a png temp file with boxplot of GTEx expression values for this gene. 
  * GeneId is the Ensembl gene ID.  GeneName is the HUGO name, used for graph title;
  * If NULL, label with the Ensembl gene ID */
 {
 struct tissueSampleVals *tsvs;