You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGES.md
+8
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,13 @@
1
1
# Change log for kotlinx.coroutines
2
2
3
+
## Version 0.30.1
4
+
Maintenance release:
5
+
* Added `Dispatchers.Main` to common dispatchers, which can be used from Android, Swing and JavaFx projects if a corresponding integration library is added to dependencies.
6
+
* With `Dispatchers.Main` improvement tooling bug in Android Studio #626 is mitigated, so Android users now can safely start the migration to the latest `kotlinx.coroutines` version.
7
+
* Fixed bug with thread unsafety of shutdown sequence in `EventLoop`.
8
+
* Experimental coroutine dispatcher now has `close` contract similar to Java `Executor`, so it can be safely instantiated and closed multiple times (affects only unit tests).
9
+
* Atomicfu version is updated with fixes in JS transformer (see #609)
10
+
3
11
## Version 0.30.0
4
12
5
13
***[Major]** Further improvements in exception handling — no failure exception is lost.
Copy file name to clipboardExpand all lines: COMPATIBILITY.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -18,8 +18,8 @@ stable public API, and thus `kotlinx.coroutines` is leaving its "experimental" s
18
18
Version `1.0.0` (starting with its release candidate build) will have all its deprecated declarations removed and `kotlinx.coroutines.experimental` package will be renamed to `kotlinx.coroutines` without functional changes.
19
19
In order to migrate `kotlinx.coroutines` to `1.0.0`, follow these steps:
20
20
21
-
1. Update `kotlinx.coroutines` to `0.30.0` version.
21
+
1. Update `kotlinx.coroutines` to `0.30.1` version.
22
22
2. Inspect compiler warnings about deprecated API and migrate it to a proposed alternative. Most of deprecated API has a corresponding replacement which can be applied from IDEA with quickfix.
23
-
3. Update Kotlin version to `1.3.0` or to the latest `1.3.0-rc` and `kotlinx.coroutines` to version `0.30.0-eap13`. Then just get rid of `experimental` suffix in all imports.
23
+
3. Update Kotlin version to `1.3.0` or to the latest `1.3.0-rc` and `kotlinx.coroutines` to version `0.30.1-eap13`. Then just get rid of `experimental` suffix in all imports.
24
24
4. Update `kotlinx.coroutines` to version `1.0.0` or to the corresponding release candidate of it).
Library support for Kotlin coroutines with [multiplatform](#multiplatform) support.
8
8
This is a companion version for Kotlin 1.2.70 release.
@@ -21,9 +21,12 @@ GlobalScope.launch {
21
21
*[common](common/README.md)— common coroutines across all backends:
22
22
*`launch` and `async` coroutine builders;
23
23
*`Job` and `Deferred` light-weight future with cancellation support;
24
+
*` Dispatchers.Main` for UI dispatcher for Android, Swing and JavaFx;
24
25
*`delay` and `yield` top-level suspending functions;
25
26
*`Channel` and `Mutex` communication and synchronization primitives;
26
27
*`produce` and `actor` coroutine builders;
28
+
*`coroutineScope` and `supervisorScope` scope builders;
29
+
*`SupervisorJob` for supervision of coroutines hierarchies;
27
30
*`select` expression support and more.
28
31
*[core](core/README.md)— Kotlin/JVM implementation of common coroutines with additional features:
29
32
*`Dispatchers.IO` dispatcher for blocking coroutines.
@@ -39,8 +42,8 @@ GlobalScope.launch {
39
42
## Documentation
40
43
41
44
* Presentations and videos:
42
-
*[Introduction to Coroutines](https://www.youtube.com/watch?v=_hfBv0a09Jc) (Roman Elizarov at KotlinConf 2017, [slides](https://www.slideshare.net/elizarov/introduction-to-coroutines-kotlinconf-2017))
43
-
*[Deep dive into Coroutines](https://www.youtube.com/watch?v=YrrUCSi72E8) (Roman Elizarov at KotlinConf 2017, [slides](https://www.slideshare.net/elizarov/deep-dive-into-coroutines-on-jvm-kotlinconf-2017))
45
+
*[Introduction to Coroutines](https://www.youtube.com/watch?v=_hfBv0a09Jc) (Roman Elizarov at KotlinConf 2017, [slides](https://www.slideshare.net/elizarov/introduction-to-coroutines-kotlinconf-2017))
46
+
*[Deep dive into Coroutines](https://www.youtube.com/watch?v=YrrUCSi72E8) (Roman Elizarov at KotlinConf 2017, [slides](https://www.slideshare.net/elizarov/deep-dive-into-coroutines-on-jvm-kotlinconf-2017))
44
47
* Guides and manuals:
45
48
*[Guide to kotlinx.coroutines by example](docs/coroutines-guide.md) (**read it first**)
46
49
*[Guide to UI programming with coroutines](ui/coroutines-guide-ui.md)
@@ -82,7 +85,7 @@ And make sure that you use the latest Kotlin version:
82
85
Add dependencies (you can also add other modules that you need):
This gives you access to Android [Dispatchers.Main](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-android/kotlinx.coroutines.experimental.android/kotlinx.coroutines.experimental.-dispatchers/index.html)
121
124
coroutine dispatcher and also makes sure that in case of crashed coroutine with unhandled exception this
Copy file name to clipboardExpand all lines: binary-compatibility-validator/reference-public-api/kotlinx-coroutines-android.txt
+3-2
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@ public final class kotlinx/coroutines/experimental/android/HandlerContext : kotl
4
4
public final fun awaitFrame (Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
5
5
public fun dispatch (Lkotlin/coroutines/experimental/CoroutineContext;Ljava/lang/Runnable;)V
6
6
public fun equals (Ljava/lang/Object;)Z
7
+
public synthetic fun getImmediate ()Lkotlinx/coroutines/experimental/MainCoroutineDispatcher;
7
8
public fun getImmediate ()Lkotlinx/coroutines/experimental/android/HandlerContext;
8
9
public synthetic fun getImmediate ()Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
9
10
public fun hashCode ()I
@@ -18,7 +19,7 @@ public final class kotlinx/coroutines/experimental/android/HandlerContextKt {
18
19
public static final fun getUI ()Lkotlinx/coroutines/experimental/android/HandlerContext;
19
20
}
20
21
21
-
public abstract class kotlinx/coroutines/experimental/android/HandlerDispatcher : kotlinx/coroutines/experimental/CoroutineDispatcher, kotlinx/coroutines/experimental/Delay {
22
+
public abstract class kotlinx/coroutines/experimental/android/HandlerDispatcher : kotlinx/coroutines/experimental/MainCoroutineDispatcher, kotlinx/coroutines/experimental/Delay {
22
23
public synthetic fun delay (JLjava/util/concurrent/TimeUnit;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
23
24
public fun delay (JLkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
24
25
public abstract fun getImmediate ()Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
@@ -32,6 +33,6 @@ public final class kotlinx/coroutines/experimental/android/HandlerDispatcherKt {
32
33
public static final fun from (Landroid/os/Handler;)Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
33
34
public static final fun from (Landroid/os/Handler;Ljava/lang/String;)Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
34
35
public static synthetic fun from$default (Landroid/os/Handler;Ljava/lang/String;ILjava/lang/Object;)Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
35
-
public static final fun getMain (Lkotlinx/coroutines/experimental/Dispatchers;)Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
36
+
public static final synthetic fun getMain (Lkotlinx/coroutines/experimental/Dispatchers;)Lkotlinx/coroutines/experimental/android/HandlerDispatcher;
Copy file name to clipboardExpand all lines: binary-compatibility-validator/reference-public-api/kotlinx-coroutines-core.txt
+9-3
Original file line number
Diff line number
Diff line change
@@ -314,14 +314,15 @@ public final class kotlinx/coroutines/experimental/DispatchedTask$DefaultImpls {
314
314
}
315
315
316
316
public final class kotlinx/coroutines/experimental/Dispatchers {
317
-
public static final field Default Lkotlinx/coroutines/experimental/CoroutineDispatcher;
318
317
public static final field INSTANCE Lkotlinx/coroutines/experimental/Dispatchers;
319
-
public static final field Unconfined Lkotlinx/coroutines/experimental/CoroutineDispatcher;
318
+
public static final fun getDefault ()Lkotlinx/coroutines/experimental/CoroutineDispatcher;
319
+
public static final fun getIO ()Lkotlinx/coroutines/experimental/CoroutineDispatcher;
320
+
public static final fun getMain ()Lkotlinx/coroutines/experimental/MainCoroutineDispatcher;
321
+
public static final fun getUnconfined ()Lkotlinx/coroutines/experimental/CoroutineDispatcher;
320
322
}
321
323
322
324
public final class kotlinx/coroutines/experimental/DispatchersKt {
323
325
public static final field IO_PARALLELISM_PROPERTY_NAME Ljava/lang/String;
324
-
public static final fun getIO (Lkotlinx/coroutines/experimental/Dispatchers;)Lkotlinx/coroutines/experimental/CoroutineDispatcher;
325
326
}
326
327
327
328
public abstract interface class kotlinx/coroutines/experimental/DisposableHandle {
@@ -468,6 +469,11 @@ public final class kotlinx/coroutines/experimental/LazyDeferredKt {
468
469
public static final fun lazyDefer (Lkotlin/coroutines/experimental/CoroutineContext;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/experimental/Deferred;
469
470
}
470
471
472
+
public abstract class kotlinx/coroutines/experimental/MainCoroutineDispatcher : kotlinx/coroutines/experimental/CoroutineDispatcher {
473
+
public fun <init> ()V
474
+
public abstract fun getImmediate ()Lkotlinx/coroutines/experimental/MainCoroutineDispatcher;
475
+
}
476
+
471
477
public final class kotlinx/coroutines/experimental/NonCancellable : kotlin/coroutines/experimental/AbstractCoroutineContextElement, kotlinx/coroutines/experimental/Job {
472
478
public static final field INSTANCE Lkotlinx/coroutines/experimental/NonCancellable;
473
479
public fun attachChild (Lkotlinx/coroutines/experimental/ChildJob;)Lkotlinx/coroutines/experimental/ChildHandle;
Copy file name to clipboardExpand all lines: binary-compatibility-validator/reference-public-api/kotlinx-coroutines-javafx.txt
+4-4
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,18 @@
1
1
public final class kotlinx/coroutines/experimental/javafx/JavaFx : kotlinx/coroutines/experimental/javafx/JavaFxDispatcher {
2
2
public static final field INSTANCE Lkotlinx/coroutines/experimental/javafx/JavaFx;
3
3
public final fun awaitPulse (Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
4
-
public fun dispatch (Lkotlin/coroutines/experimental/CoroutineContext;Ljava/lang/Runnable;)V
5
-
public fun invokeOnTimeout (JLjava/lang/Runnable;)Lkotlinx/coroutines/experimental/DisposableHandle;
6
-
public fun scheduleResumeAfterDelay (JLkotlinx/coroutines/experimental/CancellableContinuation;)V
4
+
public fun getImmediate ()Lkotlinx/coroutines/experimental/MainCoroutineDispatcher;
7
5
public fun toString ()Ljava/lang/String;
8
6
}
9
7
10
-
public abstract class kotlinx/coroutines/experimental/javafx/JavaFxDispatcher : kotlinx/coroutines/experimental/CoroutineDispatcher, kotlinx/coroutines/experimental/Delay {
8
+
public abstract class kotlinx/coroutines/experimental/javafx/JavaFxDispatcher : kotlinx/coroutines/experimental/MainCoroutineDispatcher, kotlinx/coroutines/experimental/Delay {
11
9
public synthetic fun delay (JLjava/util/concurrent/TimeUnit;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
12
10
public fun delay (JLkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
11
+
public fun dispatch (Lkotlin/coroutines/experimental/CoroutineContext;Ljava/lang/Runnable;)V
13
12
public fun invokeOnTimeout (JLjava/lang/Runnable;)Lkotlinx/coroutines/experimental/DisposableHandle;
14
13
public synthetic fun invokeOnTimeout (JLjava/util/concurrent/TimeUnit;Ljava/lang/Runnable;)Lkotlinx/coroutines/experimental/DisposableHandle;
15
14
public synthetic fun scheduleResumeAfterDelay (JLjava/util/concurrent/TimeUnit;Lkotlinx/coroutines/experimental/CancellableContinuation;)V
15
+
public fun scheduleResumeAfterDelay (JLkotlinx/coroutines/experimental/CancellableContinuation;)V
16
16
}
17
17
18
18
public final class kotlinx/coroutines/experimental/javafx/JavaFxDispatcherKt {
Copy file name to clipboardExpand all lines: binary-compatibility-validator/reference-public-api/kotlinx-coroutines-swing.txt
+4-4
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,17 @@
1
1
public final class kotlinx/coroutines/experimental/swing/Swing : kotlinx/coroutines/experimental/swing/SwingDispatcher {
2
2
public static final field INSTANCE Lkotlinx/coroutines/experimental/swing/Swing;
3
-
public fun dispatch (Lkotlin/coroutines/experimental/CoroutineContext;Ljava/lang/Runnable;)V
4
-
public fun invokeOnTimeout (JLjava/lang/Runnable;)Lkotlinx/coroutines/experimental/DisposableHandle;
5
-
public fun scheduleResumeAfterDelay (JLkotlinx/coroutines/experimental/CancellableContinuation;)V
3
+
public fun getImmediate ()Lkotlinx/coroutines/experimental/MainCoroutineDispatcher;
6
4
public fun toString ()Ljava/lang/String;
7
5
}
8
6
9
-
public abstract class kotlinx/coroutines/experimental/swing/SwingDispatcher : kotlinx/coroutines/experimental/CoroutineDispatcher, kotlinx/coroutines/experimental/Delay {
7
+
public abstract class kotlinx/coroutines/experimental/swing/SwingDispatcher : kotlinx/coroutines/experimental/MainCoroutineDispatcher, kotlinx/coroutines/experimental/Delay {
10
8
public synthetic fun delay (JLjava/util/concurrent/TimeUnit;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
11
9
public fun delay (JLkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;
10
+
public fun dispatch (Lkotlin/coroutines/experimental/CoroutineContext;Ljava/lang/Runnable;)V
12
11
public fun invokeOnTimeout (JLjava/lang/Runnable;)Lkotlinx/coroutines/experimental/DisposableHandle;
13
12
public synthetic fun invokeOnTimeout (JLjava/util/concurrent/TimeUnit;Ljava/lang/Runnable;)Lkotlinx/coroutines/experimental/DisposableHandle;
14
13
public synthetic fun scheduleResumeAfterDelay (JLjava/util/concurrent/TimeUnit;Lkotlinx/coroutines/experimental/CancellableContinuation;)V
14
+
public fun scheduleResumeAfterDelay (JLkotlinx/coroutines/experimental/CancellableContinuation;)V
15
15
}
16
16
17
17
public final class kotlinx/coroutines/experimental/swing/SwingDispatcherKt {
0 commit comments