mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-04-21 01:00:38 -07:00
src/c/unixint.d, src/c/stacks.d: we cannot execute signal handlers in separate stacks, because it confuses the lisp environment. Instead when detecting stack overflows we just jump out.
This commit is contained in:
parent
8b3ee8313d
commit
2f254ceb59
2 changed files with 3 additions and 3 deletions
|
|
@ -582,7 +582,7 @@ init_stacks(cl_env_ptr env, char *new_cs_org)
|
|||
#endif
|
||||
cs_set_size(env, ecl_get_option(ECL_OPT_C_STACK_SIZE));
|
||||
|
||||
#if defined(HAVE_SIGPROCMASK) && defined(SA_SIGINFO) && defined(SA_ONSTACK)
|
||||
#if 0 /* defined(HAVE_SIGPROCMASK) && defined(SA_SIGINFO) && defined(SA_ONSTACK) */
|
||||
if (ecl_get_option(ECL_OPT_SIGALTSTACK_SIZE)) {
|
||||
stack_t new_stack;
|
||||
cl_index size = ecl_get_option(ECL_OPT_SIGALTSTACK_SIZE);
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ mysignal(int code, void (*handler)(int, siginfo_t *, void*))
|
|||
#ifdef SA_SIGINFO
|
||||
new_action.sa_sigaction = handler;
|
||||
new_action.sa_flags = SA_SIGINFO;
|
||||
# ifdef SA_ONSTACK
|
||||
# if 0 && defined(SA_ONSTACK)
|
||||
if (code == SIGSEGV) {
|
||||
new_action.sa_flags |= SA_ONSTACK;
|
||||
}
|
||||
|
|
@ -606,7 +606,7 @@ handler_fn_protype(sigsegv_handler, int sig, siginfo_t *info, void *aux)
|
|||
return;
|
||||
}
|
||||
# endif
|
||||
# ifdef SA_ONSTACK
|
||||
# if 0 && defined(SA_ONSTACK)
|
||||
/* The handler is executed in an externally allocated stack, and
|
||||
* thus it is not safe to execute lisp code here. We just bounce
|
||||
* up to the outermost toplevel.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue