diff --git a/libsession/src/main/java/org/session/libsession/messaging/jobs/JobQueue.kt b/libsession/src/main/java/org/session/libsession/messaging/jobs/JobQueue.kt index 2934e8dcd7..77eff071b0 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/jobs/JobQueue.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/jobs/JobQueue.kt @@ -19,6 +19,7 @@ class JobQueue : JobDelegate { private val dispatcher = Executors.newSingleThreadExecutor().asCoroutineDispatcher() private val scope = GlobalScope + SupervisorJob() private val queue = Channel(UNLIMITED) + val timer = Timer() init { // process jobs @@ -77,7 +78,7 @@ class JobQueue : JobDelegate { } else { val retryInterval = getRetryInterval(job) Log.i("Jobs", "${job::class.simpleName} failed; scheduling retry (failure count is ${job.failureCount}).") - Timer().schedule(delay = retryInterval) { + timer.schedule(delay = retryInterval) { Log.i("Jobs", "Retrying ${job::class.simpleName}.") queue.offer(job) }