anchor.diff:    StringBuffer _stderr = new StringBuffer();
     StringBuffer _usageLog = new StringBuffer();
     // This function is called when the process is closed.
  -  // This is extracted to an external function so that we can do additional
  -  // functionality when the process closes (cleanup and call onExit)
  -  Function _processClosed;
  -  // This is called after the process is closed, after _processClosed has
  -  // been called, but before onExit. Subclasses can use this to cleanup
  +  Completer _processClosedCompleter = new Completer();
  +  // This is called after the process is closed, after _processClosedCompleter
  +  // has been called, but before onExit. Subclasses can use this to cleanup
     // any browser specific resources (temp directories, profiles, etc)
  +  // The function is expected to do it's work synchronously.
     Function _cleanup;
   
     /** The version of the browser - normally set when starting a browser */
  
positive.code:    * Id of the browser
     */
    String id;
  
    /** Callback that will be executed when the browser has closed */
    Function onClose;
  
    /** Print everything (stdout, stderr, usageLog) whenever we add to it */
    bool debugPrint = false;
  
negative.code:       process.exitCode.then((exitCode) {
          _logEvent("Browser closed with exitcode $exitCode");
          Future.wait([stdoutDone.future, stderrDone.future]).then((_) {
            _processClosedCompleter.complete(exitCode);
          });
        });
        return true;
  