tree 27097e92d8b4268a49a46427112796e51db7ddcb
parent 030aee45f2f43ea4cc11465e6cf8b2c3c741ec6f
author Roman Elizarov <elizarov@gmail.com> 1602586972 +0300
committer GitHub <noreply@github.com> 1602586972 +0300
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfhYlcCRBK7hj4Ov3rIwAAdHIIABiM9p0DJUQf1w4hPnFzLgDH
 Z3KL4ichBa9osiVOeTTPyNEoobfEoZFz42gFGe3eylSKTmNpZdDszSHcaD/Vt8rS
 vDCIHcvqLfNrJt4cPW+merjl7qv56fQhMyLw/fEI8c0fHpwSfaxBYdMWMN5hVocJ
 eyvWaaId1BMnIYcUpvFKd7+8nScyLI+dZbbEu7cTn1UFh6/Hgb7jcF2M8RH1eKu7
 NLumQlgeU8c1X8ejgcEFSb4vM/hArCHvKVPJHa447U0DcJ4CSGkXAeVU4Be+yq9J
 dugzm9x4nlqKffzEpQIxloyM9SZVQnmEUifc1hk6hdUsPlahEF89N4vZjrORYJg=
 =Kl2u
 -----END PGP SIGNATURE-----
 

Introduce SharedFlow and sharing operators (#2069)

* Introduce SharedFlow and sharing operators

Summary of changes:
* SharedFlow, MutableSharedFlow and its constructor.
* StateFlow implements SharedFlow.
* SharedFlow.onSubscription operator, clarified docs in other onXxx operators.
* BufferOverflow strategy in kotlinx.coroutines.channels package.
* shareIn and stateIn operators and SharingStarted strategies for them.
* SharedFlow.flowOn error lint (up from StateFlow).
* Precise cancellable() operator fusion.
* Precise distinctUntilChanged() operator fusion.
* StateFlow.compareAndSet function.
* asStateFlow and asSharedFlow read-only view functions.
* Consistently clarified docs on cold vs hot flows.
* Future deprecation notice for BroadcastChannel, ConflatedBroadcastChannel, broadcast, and broadcastIn.
* Channel(...) constructor function has onBufferOverflow parameter.
* buffer(...) operator has onBufferOverflow parameter.
* shareIn/stateIn buffer and overflow strategy are configured via upstream buffer operators.
* shareIn/stateIn fuse with upstream flowOn for more efficient execution.
* conflate() is implemented as buffer(onBufferOverflow=KEEP_LATEST), non-suspending strategies are reasonably supported with 0 and default capacities.
* Added reactive operator migration hints.
* WhileSubscribed with kotlin.time.Duration params

Fixes #2034
Fixes #2047

Co-authored-by: Ibraheem Zaman <1zaman@users.noreply.github.com>
Co-authored-by: Thomas Vos <thomasjsvos@gmail.com>
Co-authored-by: Travis Wyatt <travis.i.wyatt@gmail.com>