meio
meio copied to clipboard
Upstream eio changes
There are many changes in eio:
- support runtime events
- provide separate names, logs and automatic locations
- tracing of cancellation contexts and fiber movement
Ideally, we have to keep in mind that the runtime events interface that meio understands could be useful for other async libraries. So one way ahead is to extract a set of runtime event types that both eio and other libraries can use to provide their events.
One hard thing is automatic caller location. This is currently a hack in my fork of eio.
We could probably do with some benchmark information (at some point) to understand the impact of running the tracing calls in an intense Eio program too?
Because it's using get_callstack it definitely has some runtime overhead. We could also have a global switch for that. Ideally if the compiler generates the location info at the call site then there's less runtime overhead.