Skip to content

Commit

Permalink
Make releaseInterceptedContinuation final (Kotlin#2785)
Browse files Browse the repository at this point in the history
* Make releaseInterceptedContinuation final
* CoroutineDispatcher is internal for implementation and always has been
* Overriding this method may lead to memory leaks in parent coroutines and is considered dangerous
  • Loading branch information
qwwdfsad authored and pablobaxter committed Sep 14, 2022
1 parent 44f8e20 commit b6ff228
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion kotlinx-coroutines-core/api/kotlinx-coroutines-core.api
Expand Up @@ -158,7 +158,7 @@ public abstract class kotlinx/coroutines/CoroutineDispatcher : kotlin/coroutines
public fun isDispatchNeeded (Lkotlin/coroutines/CoroutineContext;)Z
public fun minusKey (Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext;
public final fun plus (Lkotlinx/coroutines/CoroutineDispatcher;)Lkotlinx/coroutines/CoroutineDispatcher;
public fun releaseInterceptedContinuation (Lkotlin/coroutines/Continuation;)V
public final fun releaseInterceptedContinuation (Lkotlin/coroutines/Continuation;)V
public fun toString ()Ljava/lang/String;
}

Expand Down
2 changes: 1 addition & 1 deletion kotlinx-coroutines-core/common/src/CoroutineDispatcher.kt
Expand Up @@ -99,7 +99,7 @@ public abstract class CoroutineDispatcher :
public final override fun <T> interceptContinuation(continuation: Continuation<T>): Continuation<T> =
DispatchedContinuation(this, continuation)

public override fun releaseInterceptedContinuation(continuation: Continuation<*>) {
public final override fun releaseInterceptedContinuation(continuation: Continuation<*>) {
/*
* Unconditional cast is safe here: we only return DispatchedContinuation from `interceptContinuation`,
* any ClassCastException can only indicate compiler bug
Expand Down

0 comments on commit b6ff228

Please sign in to comment.