release method
Decrements reference count and disposes if count reaches zero.
Returns: true if resource was disposed, false otherwise
Throws StateError if called more times than acquire.
Implementation
bool release() {
_refCount--;
if (_refCount < 0) {
throw StateError('release() called more times than acquire()');
}
if (_refCount == 0) {
dispose();
return true;
}
return false;
}