[Gc] Suggested enhancements for improved support of embeddable
subsystems
Jean-Claude Beaudoin
jean.claude.beaudoin at gmail.com
Tue Jun 19 20:50:41 PDT 2012
Hi,
As a user of this GC in an embeddable context (MKCL) I would like
to suggest the following enhancements to the GC's API:
1) On platforms using signals to implement the stop-world/resume-world
machinery, the choice of specific signal for SIG_SUSPEND and
SIG_THR_RESTART should be configurable at GC_init() time instead
of GC library compile time. This could be done through two simple
external functions like:
void GC_set_thread_suspend_signal(int);
void GC_set_thread_restart_signal(int);
plus two simple accessors used inside the GC code.
2) The embedding context needs to intercept any call to
function abort() or function exit() that the GC may do. A pair of
callback hooks would be very useful to achieve this.
The API for this could be something like:
typedef void (*GC_exit_func)(const int status);
void GC_set_exit_func(GC_exit_func fn);
typedef void (*GC_abort_func)(const char * const msg);
void GC_set_abort_func(GC_abort_func fn);
All of this can be quite easily implemented in a few lines
of code. I could provide you with a copy of my current
implementation if you would like, in a patch format or otherwise
to your convenience.
Regards,
Jean-Claude Beaudoin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://napali.hpl.hp.com/pipermail/gc/attachments/20120619/4814ee9c/attachment.htm
More information about the Gc
mailing list