fileSystemExample function
File System Example
Implementation
Future<void> fileSystemExample() async {
final IMutex fsMutex = MutexService().getMutex('filesystem');
/// Try lock pattern
if (fsMutex.tryLock()) {
try {
log('Performing file operation with non-blocking lock');
await Future<dynamic>.delayed(const Duration(milliseconds: 50));
} finally {
fsMutex.unlock();
}
} else {
log('File system is busy, trying with timeout');
/// Lock with timeout pattern
final bool acquired = await fsMutex.lockWithTimeout(
const Duration(seconds: 1),
);
if (acquired) {
try {
log('Acquired lock with timeout');
await Future<dynamic>.delayed(const Duration(milliseconds: 50));
} finally {
fsMutex.unlock();
}
} else {
log('Failed to acquire lock within timeout');
}
}
}