From 042f81f23b922a32d05e2aa9fe324b761d9506b1 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 26 Dec 2017 07:04:48 +0300 Subject: [PATCH] Fix Volatile usages in common and JS code --- js/js.libraries/src/core/sequence.kt | 4 +--- libraries/stdlib/src/kotlin/collections/AbstractMap.kt | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/js/js.libraries/src/core/sequence.kt b/js/js.libraries/src/core/sequence.kt index 2fe2456b5bc..c0ae870be41 100644 --- a/js/js.libraries/src/core/sequence.kt +++ b/js/js.libraries/src/core/sequence.kt @@ -17,10 +17,8 @@ package kotlin.sequences internal class ConstrainedOnceSequence(sequence: Sequence) : Sequence { - @Volatile private var sequenceRef: Sequence? = sequence - //private val lock = Any() + private var sequenceRef: Sequence? = sequence - //TODO: Synchronize with the synchonized() method override fun iterator(): Iterator { val sequence = sequenceRef ?: throw IllegalStateException("This sequence can be consumed only once.") sequenceRef = null diff --git a/libraries/stdlib/src/kotlin/collections/AbstractMap.kt b/libraries/stdlib/src/kotlin/collections/AbstractMap.kt index 890d262bdaf..64419a417f1 100644 --- a/libraries/stdlib/src/kotlin/collections/AbstractMap.kt +++ b/libraries/stdlib/src/kotlin/collections/AbstractMap.kt @@ -89,7 +89,7 @@ public abstract class AbstractMap protected constructor() : Map * Accessing this property first time creates a keys view from [entries]. * All subsequent accesses just return the created instance. */ - private @Volatile var _keys: Set? = null + private @kotlin.jvm.Volatile var _keys: Set? = null override val keys: Set get() { if (_keys == null) { _keys = object : AbstractSet() { @@ -121,7 +121,7 @@ public abstract class AbstractMap protected constructor() : Map * Accessing this property first time creates a values view from [entries]. * All subsequent accesses just return the created instance. */ - private @Volatile var _values: Collection? = null + private @kotlin.jvm.Volatile var _values: Collection? = null override val values: Collection get() { if (_values == null) { _values = object : AbstractCollection() {