import 'package:synchronized/synchronized.dart' as dart; // Isolates are not supported on web class Lock { static Future<T> synchronized<T>(int lockId, Future<T> Function() fn) => (_locks[lockId] ??= dart.Lock(reentrant: true)).synchronized(fn); static final _locks = <int, dart.Lock>{}; }