dysfun@treehouse.systems ("gaytabase") wrote:
so essentially, a good actor runtime (by which, let's be honest i mean erlang, as of today) needs timeouts. you can't make things reliable without timeouts.
but at the same time, doing timeouts properly requires yielding to the kernel. and if you have thousands of them, that's thousands of system calls you're going to be doing. fewer with something like io-uring, but still, definitely non-negligible.
and so you have to cheapen it up somehow, which typically means timing wheels, timing heaps or similarly named structures. all of which are a pain in the arse to implement.