Re: [Gc] Question: Can finalizers be used together with typed memory allocation?

Ivan Maidanski ivmai at mail.ru
Thu Sep 19 15:37:54 PDT 2013


Hi Alexander, 

Please do not define GC_DEBUG 
- it is not supported for typed malloc for now (as stated in the header file). Non-debugging variant of register finalizer should be usable for typed allocations.

Regards, 
Ivan


Thursday, 19 Sept 2013, 17:03 +04:00 from Alexander Doronin <alexanderdoronin at pdc.spb.su>:
> 
> Dear Mr. Boehm!
> 
> We are using your Garbage Collector for Visual Prolog under Windows for many years.
> Now we are going to use the typed memory allocation with finalizers, but we have some doubts about it.
> 
> We have tried to allocate typed memory by function GC_malloc_explicitly_typed and register our finalizer by GC_REGISTER_FINALIZER_NO_ORDER, but then we are recieving this error here:
> 
> GC_API void GC_CALL GC_debug_register_finalizer_no_order
>                                     (void * obj, GC_finalization_proc fn,
>                                      void * cd, GC_finalization_proc *ofn,
>                                      void * *ocd)
> {
>     GC_finalization_proc my_old_fn = OFN_UNSET;
>     void * my_old_cd;
>     ptr_t base = GC_base(obj);
>     if (0 == base) {
>         /* We won't collect it, hence finalizer wouldn't be run. */
>         if (ocd) *ocd = 0;
>         if (ofn) *ofn = 0;
>         return;
>     }
>     if ((ptr_t)obj - base != sizeof(oh)) {
>         GC_err_printf(
>           "GC_debug_register_finalizer_no_order called with "
>           "non-base-pointer %p\n",
>           obj);
>     }
>     ...
> 
> Could you, please, tell us whether it's possible to use typed allocation with finalizers or not?
> 
> Kind regards, Alexander Doronin
> _______________________________________________
> Gc mailing list
> Gc at linux.hpl.hp.com
> https://www.hpl.hp.com/hosted/linux/mail-archives/gc/



More information about the Gc mailing list