Parcourir la source

Initiate shared workers during app init

Neeraj Gupta il y a 2 ans
Parent
commit
4745a5a2f3
3 fichiers modifiés avec 4 ajouts et 2 suppressions
  1. 3 0
      lib/main.dart
  2. 0 1
      lib/services/local_sync_service.dart
  3. 1 1
      lib/utils/crypto_util.dart

+ 3 - 0
lib/main.dart

@@ -3,6 +3,7 @@ import 'dart:io';
 
 import "package:adaptive_theme/adaptive_theme.dart";
 import 'package:background_fetch/background_fetch.dart';
+import "package:computer/computer.dart";
 import 'package:firebase_messaging/firebase_messaging.dart';
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
@@ -153,6 +154,8 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
   } else {
     AppLifecycleService.instance.onAppInForeground('init via: $via');
   }
+  // Start workers asynchroniously. No need to wait for them to start
+  Computer.shared().turnOn(workersCount: 4);
   CryptoUtil.init();
   await NotificationService.instance.init();
   await NetworkClient.instance.init();

+ 0 - 1
lib/services/local_sync_service.dart

@@ -48,7 +48,6 @@ class LocalSyncService {
     if (!AppLifecycleService.instance.isForeground) {
       await PhotoManager.setIgnorePermissionCheck(true);
     }
-    await _computer.turnOn(workersCount: 1);
     if (hasGrantedPermissions()) {
       _registerChangeCallback();
     }

+ 1 - 1
lib/utils/crypto_util.dart

@@ -166,10 +166,10 @@ Uint8List chachaDecryptData(Map<String, dynamic> args) {
 }
 
 class CryptoUtil {
+  // Note: workers are turned on during app startup.
   static final Computer _computer = Computer.shared();
 
   static init() {
-    _computer.turnOn(workersCount: 4);
     Sodium.init();
   }