[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] [bug] Reentrancy error
From: |
Gwenael Casaccio |
Subject: |
[Help-smalltalk] [bug] Reentrancy error |
Date: |
Fri, 01 Jul 2011 05:33:11 -0700 |
Issue status update for
http://smalltalk.gnu.org/node/597
Post a follow up:
http://smalltalk.gnu.org/project/comments/add/597
Project: GNU Smalltalk
Version: <none>
Component: VM
Category: bug reports
Priority: critical
Assigned to: Unassigned
Reported by: MrGwen
Updated by: MrGwen
Status: active
In _gst_save_to_file (save.c line 277), there are two hook calls.
Unfortunately when they are called from the primitive
VMpr_ObjectMemory_snapshot it's not safe:
- The process P1 calls the primitive
- the primitive calls the hooks
- the hooks at the end (in _gst_nvmsg_send) selects another process P3
- leave _gst_save_to_file
- The interpretor is in the primitive code which set the stack on the
wrong process.
Possible solution ?
the hooks can be removed from the c side and be called from the
smalltalk side. But that doesn't solve the problem because the compiler
(maybe others with libgst??) calls Smalltalk code. So using
push_jmp_buf (&jb, false, get_active_process ()); could solve the
problem.
Gwen