From 0c13a4a1f1a2472fcf4f574efe13366dfa98c5b8 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 21 Jan 2015 06:11:05 -0700 Subject: [PATCH] places: avoid redundant atexit() registrations Register only in the original place. --- racket/src/racket/src/thread.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/racket/src/racket/src/thread.c b/racket/src/racket/src/thread.c index 7c56012823..0d7502ead8 100644 --- a/racket/src/racket/src/thread.c +++ b/racket/src/racket/src/thread.c @@ -1845,7 +1845,13 @@ void scheme_set_atexit(Scheme_At_Exit_Proc p) void scheme_add_atexit_closer(Scheme_Exit_Closer_Func f) { - if (!cust_closers) { +#if defined(MZ_USE_PLACES) +# define RUNNING_IN_ORIGINAL_PLACE (scheme_current_place_id == 0) +#else +# 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 {