Another error thrown from within an SCM_CRITICAL_SECTION_START,

        (define vv (make-vtable-vtable "" 0))
        (define v  (make-struct vv 0 (make-struct-layout "uw")))
        (make-struct v 0 'x)
        => abort

scm_make_struct has a critical section around the struct
initialization, but when scm_struct_init tries to convert the symbol
'x (an initializer) with scm_to_ulong for the "u" type field, an error
can be thrown.

Anyone know why there's a critical section there?  Was it to stop
signal handlers in the past seeing half-initialized data?  Can it be
safely done outside a section now?  I'm guessing yes.  The gc won't
mind seeing garbage in SCMs fields in the data array, will it?


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to