/* * Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ // This file was automatically generated from coroutines-guide-reactive.md by Knit tool. Do not edit. package kotlinx.coroutines.rx2.guide.basic08 import io.reactivex.subjects.* import kotlinx.coroutines.* import kotlinx.coroutines.rx2.* import kotlin.coroutines.* fun main() = runBlocking { val subject = BehaviorSubject.create() subject.onNext("one") subject.onNext("two") // now launch a coroutine to print the most recent update launch { // use the context of the main thread for a coroutine subject.collect { println(it) } } subject.onNext("three") subject.onNext("four") yield() // yield the main thread to the launched coroutine <--- HERE subject.onComplete() // now complete the subject's sequence to cancel the consumer, too }