File tree Expand file tree Collapse file tree 2 files changed +10
-6
lines changed
kotlinx-coroutines-reactive/src/main/kotlin/kotlinx/coroutines/experimental/reactive
kotlinx-coroutines-rx2/src/main/kotlin/kotlinx/coroutines/experimental/rx2 Expand file tree Collapse file tree 2 files changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -98,9 +98,11 @@ private suspend fun <T> Publisher<T>.awaitOne(
98
98
override fun onNext (t : T ) {
99
99
when (mode) {
100
100
Mode .FIRST , Mode .FIRST_OR_DEFAULT -> {
101
- seenValue = true
102
- cont.resume(t)
103
- subscription.cancel()
101
+ if (! seenValue) {
102
+ seenValue = true
103
+ cont.resume(t)
104
+ subscription.cancel()
105
+ }
104
106
}
105
107
Mode .LAST , Mode .SINGLE -> {
106
108
if (mode == Mode .SINGLE && seenValue) {
Original file line number Diff line number Diff line change @@ -169,9 +169,11 @@ private suspend fun <T> ObservableSource<T>.awaitOne(
169
169
override fun onNext (t : T ) {
170
170
when (mode) {
171
171
Mode .FIRST , Mode .FIRST_OR_DEFAULT -> {
172
- seenValue = true
173
- cont.resume(t)
174
- subscription.dispose()
172
+ if (! seenValue) {
173
+ seenValue = true
174
+ cont.resume(t)
175
+ subscription.dispose()
176
+ }
175
177
}
176
178
Mode .LAST , Mode .SINGLE -> {
177
179
if (mode == Mode .SINGLE && seenValue) {
You can’t perform that action at this time.
0 commit comments