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
Repair some corner cases in cancellation propagation between coroutines and listenable futures (#2222)
* Repair some corner cases in cancellation propagation between coroutines and listenable futures
Implement bidirectional cancellation for `future` coroutine builder.
This also:
* Refactors JobListenableFuture infrastructure so it can be reused in CoroutineScope.future and Deferred.asListenableFuture;
* Provides more descriptive `toString` implementation for the returned Future;
* Fixes stack traces in thrown exception, so it includes a call to get() that triggered the exception to be thrown;
* Hides ListenableFuture.asDeferred return type, so it can't be cast to CompletableDeferred;
* Adds more tests to cover fixed corner cases;
* Improves documentation;
* Suppresses annoying warnings in tests.
Fixes#1442
0 commit comments