anchor.diff:  class ToolEnvRef {
     final Directory _pubCacheDir;
     final ToolEnvironment toolEnv;
  +  final _id = _nextId++;
     int _started = 0;
     int _active = 0;
     bool _isAboveSizeLimit = false;
  
positive.code: 
    bool get _isAvailable => _started < _maxCount && !_isAboveSizeLimit;
  
    void _aquire() {
      _started++;
      _active++;
    }
  
    Future<void> release() async {
      await _checkSizeLimit();
      _active--;
      if (_active == 0) {
        // Delete directory if the instance is no longer active or it reached the
        // maximum threshold.
        if (_started >= _maxCount || _current != this) {
          await _pubCacheDir.delete(recursive: true);
        }
      }
  
negative.code:   while (result == null) {
      if (_current != null && _current._isAvailable) {
        result = _current;
        result._acquire();
        break;
      }
  
  