NVIDIA/stdexec

unused `io_uring_context` crashing on destruction

ericniebler opened this issue · 0 comments

Input:

#include <stdexec/execution.hpp>
#include <exec/linux/io_uring_context.hpp>

int main() {
  exec::io_uring_context io_uring;
}

Result:

In file included from <source>:15:
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/linux/io_uring_context.hpp:42:2: warning: #warning "Your kernel is too old to support io_uring with cancellation support." [-Wcpp]
   42 | #warning "Your kernel is too old to support io_uring with cancellation support."
      |  ^~~~~~~
Execution build compiler returned: 0
Program returned: 139
output.s: /opt/compiler-explorer/libs/stdexec/trunk/include/stdexec/__detail/__intrusive_queue.hpp:47: stdexec::__queue::__intrusive_queue<_Next>::~__intrusive_queue() [with _Item = exec::__io_uring::__task; _Item* _Item::* _Next = &exec::__io_uring::__task::__next_]: Assertion `empty()' failed.
Program terminated with signal: SIGSEGV