in lib/src/arena.dart [119:135]
R using<R>(R Function(Arena) computation,
[Allocator wrappedAllocator = calloc]) {
final arena = Arena(wrappedAllocator);
bool isAsync = false;
try {
final result = computation(arena);
if (result is Future) {
isAsync = true;
return (result.whenComplete(arena.releaseAll) as R);
}
return result;
} finally {
if (!isAsync) {
arena.releaseAll();
}
}
}