tree e3883fbc36fdca8d5ca8984db78daded2b8bef0c
parent dd79263dfd739dc4a946d38123576b961d5bfdb4
author Roman Elizarov <elizarov@gmail.com> 1612192737 +0300
committer GitHub <noreply@github.com> 1612192737 +0300
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgGBvhCRBK7hj4Ov3rIwAAdHIIAA/Hmj5JcF+r/iFwgF1BAOjF
 dYS0IfAVBkqKhPeL1bgP6vi8ByBCwBBqGBgPXwDfVcfV4sw/UGdD6rR9QcOdaJX7
 n/buTgvnEFLd7gSYH+VgutieNw6zQnJ4DPsf3UvWlff80oE2A5YrwlVWw09smUPd
 GZon1j/8p1OkVcvbjtvHLlU7XhguFJVx/iuhvzrYte5F6B5KvAzFDiIDybhFE2IE
 7rMsz8qLX+DegEgQen/Hgf8clwX0u1YNeCQz12TEmXKJDrQhdxrWeP0+ghhsfwtu
 /D/sYn1OLJMGX0qroHjAgNaIxXrXYJmL7/OvjWZvGy/sWRZAEYq/tvncEyxvfuM=
 =DSXb
 -----END PGP SIGNATURE-----
 

Restore thread context elements when directly resuming to parent (#1577)


This fix solves the problem of restoring thread-context when
returning to another context in an undispatched way.

It impacts suspend/resume performance of coroutines that use ThreadContextElement and undispatched coroutines.

The kotlinx.coroutines code poisons the context with special 'UndispatchedMarker' element and linear lookup is performed only when the marker is present. The code also contains a description of an alternative approach in order to save a linear lookup in complex coroutines hierarchies.

Fast-path of coroutine resumption is slowed down by a single context lookup.

Fixes #985

Co-authored-by: Roman Elizarov <elizarov@gmail.com>
Co-authored-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>