4 ms·
It does not allow for interleaving. Interleaving means that state can change in the same subroutine.
by pron 5y ago
It does not allow for interleaving. Interleaving means that state can change in the same subroutine.
- gpderetta 5y agoWhat I mean is that subroutine can observe its own state being changed even after a call of a non-sync marked function if that function directly or indirectly calls into a closure closing over that subroutine state. I.e. IMHO async offers very weak reentrancy guarantees that are better enforced via other means (rust-like lifetimes, immutability annotations, atomic contructs, etc).