[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issues holding up 1.6.0 release.
From: |
Gary Houston |
Subject: |
Re: Issues holding up 1.6.0 release. |
Date: |
20 Sep 2001 19:35:59 -0000 |
> From: Marius Vollmer <address@hidden>
> Date: 20 Sep 2001 02:12:54 +0200
>
> Do you really want to increase the seqno on every `before' event? I'd
> say (without really looking) it should be enough to just swap in the
> new seqno. Like
>
> struct seqnos {
> unsigned long old;
> unsigned long new;
> };
>
> static void
> before (void *s)
> {
> SCM_SEQ (scm_rootcont) = ((struct seqnos *)s)->new;
> }
I don't think it's a problem, since the contination-blocking property
prevents reentry of 'before'. The dynamic-wind is only there for
exceptions raised in the body.
> For extra points, we might also want to check "++n_dynamic_roots" for
> overflow. When that happens, we might scan the heap for live
> continuations and try to carve out a nice linear chunk of unused
> numbers to reuse.
Easier would be to make the sequence number an SCM, so it can become a
bignum if needed.