scheme_add_atexit_closer now uses scheme_atexit.
This is because calling atexit is not correct in all situations, namely on old operating systems.
This commit is contained in:
parent
a8fa5d4ebb
commit
5510a76dca
|
@ -1966,15 +1966,7 @@ void scheme_add_atexit_closer(Scheme_Exit_Closer_Func f)
|
||||||
|
|
||||||
if (!cust_closers) {
|
if (!cust_closers) {
|
||||||
if (RUNNING_IN_ORIGINAL_PLACE) {
|
if (RUNNING_IN_ORIGINAL_PLACE) {
|
||||||
if (replacement_at_exit) {
|
scheme_atexit(do_run_atexit_closers_on_all);
|
||||||
replacement_at_exit(do_run_atexit_closers_on_all);
|
|
||||||
} else {
|
|
||||||
#ifdef USE_ON_EXIT_FOR_ATEXIT
|
|
||||||
on_exit(do_run_atexit_closers_on_all, NULL);
|
|
||||||
#else
|
|
||||||
atexit(do_run_atexit_closers_on_all);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
REGISTER_SO(cust_closers);
|
REGISTER_SO(cust_closers);
|
||||||
|
@ -1986,7 +1978,15 @@ void scheme_add_atexit_closer(Scheme_Exit_Closer_Func f)
|
||||||
|
|
||||||
int scheme_atexit(void (*func)(void))
|
int scheme_atexit(void (*func)(void))
|
||||||
{
|
{
|
||||||
return atexit(func);
|
if (replacement_at_exit) {
|
||||||
|
return replacement_at_exit(func);
|
||||||
|
} else {
|
||||||
|
#ifdef USE_ON_EXIT_FOR_ATEXIT
|
||||||
|
return on_exit(func, NULL);
|
||||||
|
#else
|
||||||
|
return atexit(func);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void scheme_schedule_custodian_close(Scheme_Custodian *c)
|
void scheme_schedule_custodian_close(Scheme_Custodian *c)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user