@@ -8,12 +8,9 @@ import com.onesignal.debug.internal.logging.Logging
8
8
class ServiceProvider (
9
9
registrations : List <ServiceRegistration <* >>,
10
10
) : IServiceProvider {
11
- private var serviceMap: Map <Class <* >, List <ServiceRegistration <* >>>
12
- private val serviceMapLock = Any ()
11
+ private val serviceMap = mutableMapOf<Class <* >, MutableList <ServiceRegistration <* >>>()
13
12
14
13
init {
15
- val serviceMap = mutableMapOf<Class <* >, MutableList <ServiceRegistration <* >>>()
16
-
17
14
// go through the registrations to create the service map for easier lookup post-build
18
15
for (reg in registrations) {
19
16
for (service in reg.services) {
@@ -24,8 +21,6 @@ class ServiceProvider(
24
21
}
25
22
}
26
23
}
27
-
28
- this .serviceMap = serviceMap
29
24
}
30
25
31
26
internal inline fun <reified T : Any > hasService (): Boolean {
@@ -45,13 +40,13 @@ class ServiceProvider(
45
40
}
46
41
47
42
override fun <T > hasService (c : Class <T >): Boolean {
48
- synchronized(serviceMapLock ) {
43
+ synchronized(serviceMap ) {
49
44
return serviceMap.containsKey(c)
50
45
}
51
46
}
52
47
53
48
override fun <T > getAllServices (c : Class <T >): List <T > {
54
- synchronized(serviceMapLock ) {
49
+ synchronized(serviceMap ) {
55
50
val listOfServices: MutableList <T > = mutableListOf ()
56
51
57
52
if (serviceMap.containsKey(c)) {
@@ -79,7 +74,7 @@ class ServiceProvider(
79
74
}
80
75
81
76
override fun <T > getServiceOrNull (c : Class <T >): T ? {
82
- synchronized(serviceMapLock ) {
77
+ synchronized(serviceMap ) {
83
78
Logging .debug(" ${indent} Retrieving service $c " )
84
79
return serviceMap[c]?.last()?.resolve(this ) as T ?
85
80
}
0 commit comments