Skip to content

Commit 91b29b0

Browse files
committed
Update convention
1 parent b43a879 commit 91b29b0

File tree

3 files changed

+18
-18
lines changed
  • kotlinx-coroutines-async/src/main/kotlin
  • kotlinx-coroutines-generate/src/main/kotlin
  • kotlinx-coroutines-rx/src/main/kotlin

3 files changed

+18
-18
lines changed

kotlinx-coroutines-async/src/main/kotlin/async.kt

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import java.util.concurrent.CompletableFuture
1010
import java.util.concurrent.TimeUnit
1111
import javax.swing.SwingUtilities
1212
import kotlin.coroutines.Continuation
13-
import kotlin.coroutines.ResumeInterceptor
13+
import kotlin.coroutines.ContinuationDispatcher
1414
import kotlin.coroutines.startCoroutine
15+
import kotlin.coroutines.suspendCoroutine
1516

1617
/**
1718
* Run asynchronous computations based on [c] coroutine parameter
@@ -49,16 +50,16 @@ fun <T> async(
4950
},
5051

5152
if (continuationWrapper != null) {
52-
object: ResumeInterceptor {
53-
override fun <P> interceptResume(data: P, continuation: Continuation<P>): Boolean {
53+
object: ContinuationDispatcher {
54+
override fun <P> dispatchResume(data: P, continuation: Continuation<P>): Boolean {
5455
continuationWrapper {
5556
continuation.resume(data)
5657
}
5758

5859
return true
5960
}
6061

61-
override fun interceptResumeWithException(exception: Throwable, continuation: Continuation<*>): Boolean {
62+
override fun dispatchResumeWithException(exception: Throwable, continuation: Continuation<*>): Boolean {
6263
continuationWrapper {
6364
continuation.resumeWithException(exception)
6465
}
@@ -93,7 +94,7 @@ fun asyncUI(
9394
typealias ContinuationWrapper = (() -> Unit) -> Unit
9495

9596
suspend fun <V> CompletableFuture<V>.await(): V =
96-
runWithCurrentContinuation {
97+
suspendCoroutine {
9798
whenComplete { value, throwable ->
9899
if (throwable == null)
99100
it.resume(value)
@@ -107,41 +108,41 @@ suspend fun <V> CompletableFuture<V>.await(): V =
107108
suspend fun AsynchronousFileChannel.aRead(
108109
buf: ByteBuffer,
109110
position: Long
110-
) = runWithCurrentContinuation<Int> { c ->
111+
) = suspendCoroutine<Int> { c ->
111112
this.read(buf, position, null, AsyncIOHandler(c))
112113
}
113114

114115
suspend fun AsynchronousFileChannel.aWrite(
115116
buf: ByteBuffer,
116117
position: Long
117-
) = runWithCurrentContinuation<Int> { c ->
118+
) = suspendCoroutine<Int> { c ->
118119
this.write(buf, position, null, AsyncIOHandler(c))
119120
}
120121

121122
suspend fun AsynchronousServerSocketChannel.aAccept() =
122-
runWithCurrentContinuation<AsynchronousSocketChannel> { c ->
123+
suspendCoroutine<AsynchronousSocketChannel> { c ->
123124
this.accept(null, AsyncIOHandler(c))
124125
}
125126

126127
suspend fun AsynchronousSocketChannel.aConnect(
127128
socketAddress: SocketAddress
128-
) = runWithCurrentContinuation<Unit> { c ->
129+
) = suspendCoroutine<Unit> { c ->
129130
this.connect(socketAddress, null, AsyncVoidIOHandler(c))
130131
}
131132

132133
suspend fun AsynchronousSocketChannel.aRead(
133134
buf: ByteBuffer,
134135
timeout: Long = 0L,
135136
timeUnit: TimeUnit = TimeUnit.MILLISECONDS
136-
) = runWithCurrentContinuation<Int> { c ->
137+
) = suspendCoroutine<Int> { c ->
137138
this.read(buf, timeout, timeUnit, null, AsyncIOHandler(c))
138139
}
139140

140141
suspend fun AsynchronousSocketChannel.aWrite(
141142
buf: ByteBuffer,
142143
timeout: Long = 0L,
143144
timeUnit: TimeUnit = TimeUnit.MILLISECONDS
144-
) = runWithCurrentContinuation<Int> { c ->
145+
) = suspendCoroutine<Int> { c ->
145146
this.write(buf, timeout, timeUnit, null, AsyncIOHandler(c))
146147
}
147148

kotlinx-coroutines-generate/src/main/kotlin/generate.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package kotlinx.coroutines
22

3-
import kotlin.coroutines.Continuation
4-
import kotlin.coroutines.SUSPENDED
5-
import kotlin.coroutines.createCoroutine
6-
import kotlin.coroutines.suspendWithCurrentContinuation
3+
import kotlin.coroutines.*
4+
import kotlin.coroutines.CoroutineIntrinsics.SUSPENDED
75

86
/**
97
* Creates a Sequence object based on received coroutine [c].
@@ -35,7 +33,7 @@ private class GeneratedIterator<T>(block: suspend Generator<T>.() -> Unit) : Abs
3533
override fun computeNext() {
3634
nextStep.resume(Unit)
3735
}
38-
suspend override fun yield(value: T) = suspendWithCurrentContinuation<Unit> { c ->
36+
suspend override fun yield(value: T) = CoroutineIntrinsics.suspendCoroutineOrReturn <Unit> { c ->
3937
setNext(value)
4038
nextStep = c
4139

kotlinx-coroutines-rx/src/main/kotlin/asyncRx.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import rx.Observable
44
import rx.subjects.AsyncSubject
55
import kotlin.coroutines.Continuation
66
import kotlin.coroutines.startCoroutine
7+
import kotlin.coroutines.suspendCoroutine
78

89
/**
910
* Run asynchronous computations based on [c] coroutine parameter
@@ -45,12 +46,12 @@ suspend fun <V> Observable<V>.awaitLast(): V = last().awaitOne()
4546

4647
suspend fun <V> Observable<V>.awaitSingle(): V = single().awaitOne()
4748

48-
private suspend fun <V> Observable<V>.awaitOne(): V = runWithCurrentContinuation<V> { x ->
49+
private suspend fun <V> Observable<V>.awaitOne(): V = suspendCoroutine<V> { x ->
4950
subscribe(x::resume, x::resumeWithException)
5051
}
5152

5253
suspend fun <V> Observable<V>.applyForEachAndAwait(
5354
block: (V) -> Unit
54-
) = runWithCurrentContinuation<Unit> { x->
55+
) = suspendCoroutine<Unit> { x->
5556
this.subscribe(block, x::resumeWithException, { x.resume(Unit) })
5657
}

0 commit comments

Comments
 (0)