anchor.diff:        trials++;
         if (trials == maxTrials) {
           timer.cancel();
  -        completer.completeError(new LockException("Could not obtain lock", trials));
  +        completer.completeError(
  +            new LockException(null, trials, path));
         }
       }
     }
  
positive.code:   return runZoned(() => _runWithLock(path, callback, tryInterval, maxTrials),
                                       onError: (e, s) {
      freeLock(path);
      logger.info('Error executing callback.', e, s);
      throw e;
      exit(1);
    });
  }
negative.code:     final String message;
      /** The max count that was exceeded. */
      final num count;
      /** Path of lock. */
      final String path;
  
      LockException(this.message, this.count, this.path);
  
      String toString() {
        String str = "LockException: could not obtain lock at path $path after "
                     "$count trials.";
        if (message != null) str = "$str\n$message";
        return str;
      }
  
  }
  