fileSystemExample function

Future<void> fileSystemExample()

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');
    }
  }
}