mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-23 04:52:42 -08:00
We can't use the ECL_WITH_SPINLOCK_BEGIN/END macros since they check for pending interrupts at the end of their unwind-protect frame. This leads to various bugs: - in queue_signal the to be queued interrupt is executed immediately after being queued even if interrupts are disabled - in pop_signal if multiple interrupts are queued they are executed in reverse order To fix these issues, use a) ecl_get/giveup_spinlock directly and b) ecl_disable/enable_interrupts_env to prevent the spinlock not being released due to an interrupt happening during the execution of the main body of pop_signal/queue_signal. |
||
|---|---|---|
| .. | ||
| bdwgc | ||
| c | ||
| clos | ||
| cmp | ||
| doc | ||
| ecl | ||
| gmp | ||
| h | ||
| libffi | ||
| lsp | ||
| tests | ||
| util | ||
| aclocal.m4 | ||
| bare.lsp.in | ||
| compile.lsp.in | ||
| config.guess | ||
| config.sub | ||
| configure | ||
| configure.ac | ||
| install.sh | ||
| Makefile.in | ||