[bug] Reentrancy error

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[bug] Reentrancy error

MrGwen
Issue status update for
http://smalltalk.gnu.org/node/596
Post a follow up:
http://smalltalk.gnu.org/project/comments/add/596

 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



_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk