diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/Event.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/Event.kt index fc568d01..a0dfe734 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/Event.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/Event.kt @@ -1,30 +1,26 @@ package com.lagradost.cloudstream3.utils -import com.lagradost.cloudstream3.utils.Coroutines.ioSafe -import kotlinx.coroutines.sync.Mutex -import kotlinx.coroutines.sync.withLock - class Event { private val observers = mutableSetOf<(T) -> Unit>() val size: Int get() = observers.size operator fun plusAssign(observer: (T) -> Unit) { - observers.add(observer) + synchronized(observers) { + observers.add(observer) + } } operator fun minusAssign(observer: (T) -> Unit) { - observers.remove(observer) + synchronized(observers) { + observers.remove(observer) + } } - private val invokeMutex = Mutex() - operator fun invoke(value: T) { - ioSafe { - invokeMutex.withLock { // Can crash otherwise - for (observer in observers) - observer(value) - } + synchronized(observers) { + for (observer in observers) + observer(value) } } }