diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-27 16:17:24 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-28 16:52:50 +0000 |
| commit | d67ddcba6d65a5d4a7d86c9d7ab065414c9e1bb0 (patch) | |
| tree | e3f0e85bdbd9c669d85e3e8950290023e1de476a /android | |
| parent | 44059b8dd2a862fafb831c8d1bdd67284fba14a6 (diff) | |
| download | mullvadvpn-d67ddcba6d65a5d4a7d86c9d7ab065414c9e1bb0.tar.xz mullvadvpn-d67ddcba6d65a5d4a7d86c9d7ab065414c9e1bb0.zip | |
Implement tracking background computations
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/util/JobTracker.kt | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/JobTracker.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/JobTracker.kt index 29802b5bce..7be0668f61 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/util/JobTracker.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/util/JobTracker.kt @@ -3,6 +3,7 @@ package net.mullvad.mullvadvpn.util import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job +import kotlinx.coroutines.async import kotlinx.coroutines.launch class JobTracker { @@ -49,6 +50,14 @@ class JobTracker { return newJob(name, GlobalScope.launch(Dispatchers.Main) { jobBody() }) } + suspend fun <T> runOnBackground(jobBody: suspend () -> T): T { + val job = GlobalScope.async(Dispatchers.Default) { jobBody() } + + newJob(job) + + return job.await() + } + fun cancelJob(name: String) { synchronized(namedJobs) { namedJobs.remove(name)?.let { oldJobId -> |
