@@ -444,44 +444,39 @@ function mergeRegressionRanges(regressionRanges)
444444
445445results . unifyRegressionRanges = function ( builderNameList , testName , callback )
446446{
447- var queriesInFlight = builderNameList . length ;
448- if ( ! queriesInFlight )
449- callback ( 0 , 0 ) ;
450-
451447 var regressionRanges = { } ;
448+
449+ var tracker = new base . RequestTracker ( builderNameList . length , function ( ) {
450+ var mergedRange = mergeRegressionRanges ( regressionRanges ) ;
451+ callback ( mergedRange . oldestFailingRevision , mergedRange . newestPassingRevision ) ;
452+ } ) ;
453+
452454 $ . each ( builderNameList , function ( index , builderName ) {
453455 results . regressionRangeForFailure ( builderName , testName , function ( oldestFailingRevision , newestPassingRevision ) {
454456 var range = { } ;
455457 range . oldestFailingRevision = oldestFailingRevision ;
456458 range . newestPassingRevision = newestPassingRevision ;
457459 regressionRanges [ builderName ] = range ;
458-
459- -- queriesInFlight ;
460- if ( ! queriesInFlight ) {
461- var mergedRange = mergeRegressionRanges ( regressionRanges ) ;
462- callback ( mergedRange . oldestFailingRevision , mergedRange . newestPassingRevision ) ;
463- }
460+ tracker . requestComplete ( ) ;
464461 } ) ;
465462 } ) ;
466463} ;
467464
468465results . countFailureOccurances = function ( builderNameList , testName , callback )
469466{
470- var queriesInFlight = builderNameList . length ;
471- if ( ! queriesInFlight )
472- callback ( 0 ) ;
473-
474467 var failureCount = 0 ;
468+
469+ var tracker = new base . RequestTracker ( builderNameList . length , function ( ) {
470+ callback ( failureCount ) ;
471+ } ) ;
472+
475473 $ . each ( builderNameList , function ( index , builderName ) {
476474 walkHistory ( builderName , testName , function ( revision , resultNode ) {
477475 if ( isUnexpectedFailure ( resultNode ) ) {
478476 ++ failureCount ;
479477 return true ;
480478 }
481-
482- -- queriesInFlight ;
483- if ( ! queriesInFlight )
484- callback ( failureCount ) ;
479+ tracker . requestComplete ( ) ;
485480 return false ;
486481 } ) ;
487482 } ) ;
@@ -538,31 +533,21 @@ results.fetchResultsURLs = function(failureInfo, callback)
538533{
539534 var stem = resultsDirectoryURL ( failureInfo . builderName ) ;
540535 var testNameStem = base . trimExtension ( failureInfo . testName ) ;
541-
542536 var suffixList = possibleSuffixListFor ( failureInfo . failureTypeList ) ;
543-
544537 var resultURLs = [ ] ;
545- var requestsInFlight = suffixList . length ;
546-
547- if ( ! requestsInFlight ) {
548- callback ( [ ] ) ;
549- return ;
550- }
551-
552- function checkComplete ( )
553- {
554- if ( -- requestsInFlight == 0 )
555- callback ( sortResultURLsBySuffix ( resultURLs ) ) ;
556- }
557-
538+ var tracker = new base . RequestTracker ( suffixList . length , function ( ) {
539+ callback ( sortResultURLsBySuffix ( resultURLs ) ) ;
540+ } ) ;
558541 $ . each ( suffixList , function ( index , suffix ) {
559542 var url = stem + testNameStem + suffix ;
560543 net . probe ( url , {
561544 success : function ( ) {
562545 resultURLs . push ( url ) ;
563- checkComplete ( ) ;
546+ tracker . requestComplete ( ) ;
547+ } ,
548+ error : function ( ) {
549+ tracker . requestComplete ( ) ;
564550 } ,
565- error : checkComplete ,
566551 } ) ;
567552 } ) ;
568553} ;
@@ -575,13 +560,13 @@ results.fetchResultsForBuilder = function(builderName, callback)
575560results . fetchResultsByBuilder = function ( builderNameList , callback )
576561{
577562 var resultsByBuilder = { }
578- var requestsInFlight = builderNameList . length ;
563+ var tracker = new base . RequestTracker ( builderNameList . length , function ( ) {
564+ callback ( resultsByBuilder ) ;
565+ } ) ;
579566 $ . each ( builderNameList , function ( index , builderName ) {
580567 results . fetchResultsForBuilder ( builderName , function ( resultsTree ) {
581568 resultsByBuilder [ builderName ] = resultsTree ;
582- -- requestsInFlight ;
583- if ( ! requestsInFlight )
584- callback ( resultsByBuilder ) ;
569+ tracker . requestComplete ( ) ;
585570 } ) ;
586571 } ) ;
587572} ;
0 commit comments