3 ms·
> You get into hairy problems of definition, but you can definitely create an "async" runtime out of "sync" operations: implement an async runtime with calls to
by masklinn 1y ago
> You get into hairy problems of definition, but you can definitely create an "async" runtime out of "sync" operations: implement an async runtime with calls to C. C doesn't have a concept of "async", and more or less all async runtime end up like this.
While C doesn't have async OS generally provide APIs which are non-blocking, and that is what async runtimes are implemented on top of.
By sync operations I mean implementing an "async" runtime entirely atop blocking operations, without bouncing them through any sort of worker threads or anything.
- dwattttt 1y agoI've been pondering this, it feels like a brain teaser. Is it possible to create an "async" runtime out of only blocking operations? It feels like it turns purely on what "blocking operations" are (does setting a lock bit and returning count as non-blocking?)