syncWithResource<T> method

T syncWithResource<T>(
  1. List<Resource> resources,
  2. T onAccept(),
  3. T onDeny()
)

Implementation

T syncWithResource<T>(
  List<Resource> resources,
  T Function() onAccept,
  T Function() onDeny,
) {
  assert(resources.isNotEmpty);
  var token = _lockResource(resources);
  if (token == 0) {
    return onDeny();
  }
  try {
    return onAccept();
  } catch (e) {
    Alog.e(
        tag: _tag,
        moduleName: _moduleName,
        content: 'InvocationManager#syncWithResource error $e');
    rethrow;
  } finally {
    _unlockResource(token);
  }
}