boolean invoke ( ) { if ( complete ) { return complete ; } if ( iterations >= results . length ) { int newlen = expandTo ( results . length ) ; if ( newlen < 0 ) { complete = true ; return complete ; } results = Arrays . copyOf ( results , newlen ) ; } long res = Math . max ( task . time ( ) , 1 ) ; results [ iterations ] = res ; if ( stable . length > 0 ) { stable [ iterations % stable . length ] = res ; if ( iterations > stable . length && inBounds ( stable , stableLimit ) ) { complete = true ; } } remainingTime -= res ; iterations ++ ; if ( iterations >= limit || remainingTime < 0 ) { complete = true ; } return complete ; }
Perform a single additional iteration of the task .