nim-chronos/chronos
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
..
apps/http `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
internal disallow reentrancy 2023-11-17 14:50:53 +01:00
ioselects move test data to c file (#448) 2023-10-17 14:19:20 +02:00
streams `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
transports introduce asyncraises in transports/asyncsync (#470) 2023-11-15 09:38:48 +01:00
unittest2 add connect cancellation test (#444) 2023-09-05 13:41:52 +03:00
apps.nim exception tracking (#166) 2021-03-24 10:08:33 +01:00
asyncloop.nim move docs to docs (#466) 2023-11-15 09:06:37 +01:00
asyncproc.nim `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
asyncsync.nim introduce asyncraises in transports/asyncsync (#470) 2023-11-15 09:38:48 +01:00
config.nim doc generation fixes (#464) 2023-11-08 21:20:24 +01:00
debugutils.nim Introduce `chronos/futures` (#405) 2023-06-07 20:04:07 +02:00
futures.nim dedicated exceptions for `Future.read` failures (#474) 2023-11-17 13:45:17 +01:00
handles.nim `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
osdefs.nim doc generation fixes (#464) 2023-11-08 21:20:24 +01:00
oserrno.nim IPv4/IPv6 dualstack (#456) 2023-10-30 15:27:50 +02:00
osutils.nim `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
ratelimit.nim Cancellation fixes and tests. (#445) 2023-09-15 19:38:39 +03:00
selectors2.nim `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
sendfile.nim Recover `poll` engine and add tests. (#421) 2023-08-01 12:56:08 +03:00
srcloc.nim clean up `Defect` (#404) 2023-06-05 22:21:50 +02:00
threadsync.nim `stew/results` -> `results` (#468) 2023-11-13 10:56:19 +01:00
timer.nim clean up `Defect` (#404) 2023-06-05 22:21:50 +02:00
transport.nim exception tracking (#166) 2021-03-24 10:08:33 +01:00