I've encountered the following issue using SBCL 1.0.13 on SBCL/Win32.
I have a callback cffi:defcallback that is called when a node is deleted.
I'm calling trivial garbage's tg:cancel-finalization within the callback to
cancel any finalization that would occur when the object is GC'd.
tg:cancel-finalization calls sb-ext:cancel-finalization.
When I call tg:cancel-finalization within the callback, SBCL will at times
return the following:
[Condition of type SIMPLE-ERROR]
0: [ABORT] Return to SLIME's top level.
1: [CLOSE-CONNECTION] Close SLIME connection
2: [ABORT] Exit debugger, returning to top level.
0: ("bogus stack frame")
1: ("foreign function: #x12CF966")
2: ("foreign function: #x12B3BCC")
3: ("foreign function: #x2100670")
4: ("foreign function: #x12C6B1F")
5: ("foreign function: #x12C6B11")
6: ("foreign function: #x12C6B11")
7: ("foreign function: #x12C6B11")
8: (LISPBUILDER-OPENRM-CFFI::RM-SUB-TREE-DELETE #.(SB-SYS:INT-SAP
and at times a MSVC++ debug library dialog box will appear with, "Debug
Error! DAMAGE: after Normal block (#803) at 0x01B43ED8"
Lispworks seems to allow the cancel-finalizer call from within a callback.
Is the SBCL error due to non-threading on Win32?