wasm-micro-runtime/core/iwasm
YAMAMOTO Takashi 444b159963
Implement async termination of blocking thread (#2516)
Send a signal whose handler is no-op to a blocking thread to wake up
the blocking syscall with either EINTR equivalent or partial success.

Unlike the approach taken in the `dev/interrupt_block_insn` branch (that is,
signal + longjmp similarly to `OS_ENABLE_HW_BOUND_CHECK`), this PR
does not use longjmp because:
* longjmp from signal handler doesn't work on nuttx
  refer to https://github.com/apache/nuttx/issues/10326
* the singal+longjmp approach may be too difficult for average programmers
  who might implement host functions to deal with

See also https://github.com/bytecodealliance/wasm-micro-runtime/issues/1910
2023-09-20 18:11:52 +08:00
..
aot Implement module instance context APIs (#2436) 2023-09-07 14:54:11 +08:00
common Implement async termination of blocking thread (#2516) 2023-09-20 18:11:52 +08:00
compilation Fix a typo in is_win_platform (#2490) 2023-08-22 11:50:11 +08:00
doc Add architecture diagram for wasm globals and classic-interp stack frame (#2058) 2023-03-25 09:39:20 +08:00
fast-jit Fix some check issues on table operations (#2392) 2023-07-27 21:53:48 +08:00
include Implement async termination of blocking thread (#2516) 2023-09-20 18:11:52 +08:00
interpreter Implement module instance context APIs (#2436) 2023-09-07 14:54:11 +08:00
libraries Implement async termination of blocking thread (#2516) 2023-09-20 18:11:52 +08:00
README.md Add architecture diagram for wasm globals and classic-interp stack frame (#2058) 2023-03-25 09:39:20 +08:00