Open goerch opened 2 years ago
Generally, calling un-exported, un-documented Base functions is not guaranteed to be safe, so I don't think this is an issue.
Point taken, but if you are writing an IR interpreter there is no obvious way around it.
It looks like iolock_end is somehow getting called in a different task than iolock_begin? How is that happening? We can't make that "just work". You will need to make sure the interpreter doesn't introduce new task boundaries in order to run on our task runtime.
We also generally prohibit switching tasks while holding an internal lock (i.e. iolock), since it breaks the assumption that the lock calls are properly nested, and that it won't accidentally try to interleave with, e.g., running the scheduler itself.
yields