fix at-exit close handling for non-main place
This bug has been causing problems since the change to the `math` library to register mpfr_free_cache() only once per place.
This commit is contained in:
parent
4af6770ed4
commit
eca0c18730
|
@ -1846,15 +1846,17 @@ void scheme_add_atexit_closer(Scheme_Exit_Closer_Func f)
|
|||
# define RUNNING_IN_ORIGINAL_PLACE 1
|
||||
#endif
|
||||
|
||||
if (!cust_closers && RUNNING_IN_ORIGINAL_PLACE) {
|
||||
if (replacement_at_exit) {
|
||||
replacement_at_exit(do_run_atexit_closers_on_all);
|
||||
} else {
|
||||
if (!cust_closers) {
|
||||
if (RUNNING_IN_ORIGINAL_PLACE) {
|
||||
if (replacement_at_exit) {
|
||||
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);
|
||||
on_exit(do_run_atexit_closers_on_all, NULL);
|
||||
#else
|
||||
atexit(do_run_atexit_closers_on_all);
|
||||
atexit(do_run_atexit_closers_on_all);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
REGISTER_SO(cust_closers);
|
||||
|
|
Loading…
Reference in New Issue
Block a user