public synchronized void close ( ) { if ( reportRequest == null ) finalReport = buildReport ( ) ; else { finalReport = new TimingInterval ( 0 ) ; report = buildReport ( ) ; reportRequest . countDown ( ) ; reportRequest = null ; } }
closes the timer ; if a request is outstanding it furnishes the request otherwise it populates finalReport