Still, this problem is unsolved:

set I0,100000
set S0,"#"
REDO: pack S1,1,S0
      dec I0
      print I0
      print "\n"
      if I0,REDO
end

Will core dump, because in :

inline op pack(inout STR, in INT, in STR) {
    STRING *t,*s = $3;
    UINTVAL len = (UINTVAL)$2;
    char buf[3];

    if (s->buflen < len) {
        t = string_make(interpreter, buf, (UINTVAL)(len - s->buflen),
NULL, 0, NULL);
        $1 = string_concat(interpreter, $1, s, 1);
    } else {
        t = string_make(interpreter, s->bufstart, (UINTVAL)len, NULL, 0,
NULL);
    }
    $1 = string_concat(interpreter, $1, t, 1);
    string_destroy(t);

    goto NEXT();
}

t gets collected, one way to solve this is to disable the GC inside the
op, but I don't know if that's the best way, thoughts?

Regards,
Daniel Grunblatt.

On Mon, 20 May 2002, Daniel Grunblatt wrote:

>
> On 20 May 2002, Peter Gibbs wrote:
>
> > # New Ticket Created by  "Peter Gibbs"
> > # Please include the string:  [netlabs #601]
> > # in the subject line of all future correspondence about this issue.
> > # <URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=601 >
> >
> >
> > Attached is a simplified version of a previous patch to allow buffers to
> > avoid collection during their formative nanoseconds. This version covers the
> > basics:
> > A new flag - BUFFER_neonate_FLAG
> > This flag causes immunity from collection during DOD runs
> > The flag is set and cleared as required in string.c (note that there may be
> > more places that need flag setting, I just did a few obvious ones)
> >
> > This version makes no attempt to track the fact that there are newborns, or
> > to kill them if they try to keep this status for too long. It therefore
> > needs to be specifically used only when required. I am proposing this as an
> > interim solution until we decide on the best way of handling it permanently,
> > to overcome the current bugs without resorting to the performance-impacting
> > method of suppressing DOD runs.
> >
> > A few warnings in string.c have been removed in the process, along with some
> > duplicate #define's in string.h
> >
> > --
> > Peter Gibbs
> > EmKel Systems
> >
> >
>
> Applied, thanks.
>
>


Reply via email to