summaryrefslogtreecommitdiff
path: root/libguile/scmsigs.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2016-06-24 09:50:23 +0200
committerAndy Wingo <wingo@pobox.com>2016-06-24 09:50:23 +0200
commit7d550c4ea0c78c5f4a726cae03bf812a246a6dde (patch)
treea6c6dba49575b30bbbe0db685f647b05cfebf9a7 /libguile/scmsigs.c
parent20718dd94b8360e67c4df9caa5af3e079167e2a6 (diff)
downloadguile-7d550c4ea0c78c5f4a726cae03bf812a246a6dde.tar.gz
Fix ,profile in pure modules
* libguile/scmsigs.c (close_1): Make the async closure in an environment where `lambda' has its usual meaning. Fixes #21013.
Diffstat (limited to 'libguile/scmsigs.c')
-rw-r--r--libguile/scmsigs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c
index a23f151a2..441da3ec7 100644
--- a/libguile/scmsigs.c
+++ b/libguile/scmsigs.c
@@ -109,8 +109,10 @@ static SIGRETTYPE (*orig_handlers[NSIG])(int);
static SCM
close_1 (SCM proc, SCM arg)
{
- return scm_primitive_eval_x (scm_list_3 (scm_sym_lambda, SCM_EOL,
- scm_list_2 (proc, arg)));
+ /* Eval in the root module so that `lambda' has its usual meaning. */
+ return scm_eval (scm_list_3 (scm_sym_lambda, SCM_EOL,
+ scm_list_2 (proc, arg)),
+ scm_the_root_module ());
}
#if SCM_USE_PTHREAD_THREADS