The asynchronous behaviour raises interesting questions as to whether or not this is a bug or working as intended, and whether or not the io_uring API should offer controls to allow the calling application to decide.<p>With synchronous intra-machine calls we mostly take it for granted that pending modifications die with the caller.<p>But with inter-machine communications we mostly take it for granted that the sending machine and its entire local area can disappear and operations it sent will complete.<p>Of course, there are exceptions, especially when APIs/systems offer atomicity, consistency checks, etc.<p>But without express design intent, or preferably caller intent, one can argue both sides of the asynchronous intra-machine case and be right.<p>I guess my thinking isn't so much that this happens as that it happens implicitly.