nim-chronos/chronos/internal
Jacek Sieka 50abdc4954
disallow reentrancy
Reentrancy causes event reordering and stack explosions, in addition to
leading to hard-to-debug scenarios.

Since none of chronos is actually tested under reentrant conditions (ie
that all features such as exceptions, cancellations, buffer operations,
timers etc work reliably when the loop is reentered), this is hard to
support over time and prevents useful optimizations - this PR simply
detects and disallows the behaviour to remove the uncertainty,
simplifying reasoning about the event loop in general.
2023-11-17 14:50:53 +01:00
..
asyncengine.nim disallow reentrancy 2023-11-17 14:50:53 +01:00
asyncfutures.nim dedicated exceptions for `Future.read` failures (#474) 2023-11-17 13:45:17 +01:00
asyncmacro.nim dedicated exceptions for `Future.read` failures (#474) 2023-11-17 13:45:17 +01:00
errors.nim per-function `Exception` handling (#457) 2023-11-08 15:12:32 +01:00
raisesfutures.nim introduce asyncraises in transports/asyncsync (#470) 2023-11-15 09:38:48 +01:00