avoid a stack overflow with deeply call-in-nested threads
svn: r18046
This commit is contained in:
parent
38a0f6d89a
commit
f94b9f4377
|
@ -1974,12 +1974,17 @@ void scheme_schedule_custodian_close(Scheme_Custodian *c)
|
||||||
|
|
||||||
static void check_scheduled_kills()
|
static void check_scheduled_kills()
|
||||||
{
|
{
|
||||||
|
Scheme_Object *kl, *k;
|
||||||
|
|
||||||
while (scheduled_kills && !SCHEME_NULLP(scheduled_kills)) {
|
while (scheduled_kills && !SCHEME_NULLP(scheduled_kills)) {
|
||||||
Scheme_Object *k;
|
kl = scheduled_kills;
|
||||||
k = SCHEME_CAR(scheduled_kills);
|
scheduled_kills = scheme_null;
|
||||||
scheduled_kills = SCHEME_CDR(scheduled_kills);
|
while (!SCHEME_NULLP(kl)) {
|
||||||
|
k = SCHEME_CAR(kl);
|
||||||
|
kl = SCHEME_CDR(kl);
|
||||||
scheme_close_managed((Scheme_Custodian *)k);
|
scheme_close_managed((Scheme_Custodian *)k);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_current_custodian_allows(const char *who, Scheme_Thread *p)
|
static void check_current_custodian_allows(const char *who, Scheme_Thread *p)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user