Commit 703771fc authored by Daniel Kochmański's avatar Daniel Kochmański
Browse files

Revert "cmp: execute cleanup forms of unwind-protect with interrupts disabled"

This reverts commit b8df7a77.
parent 3adc8b22
......@@ -56,8 +56,6 @@
=--with-libgc-incdir= and =--with-libgc-libdir= (these flags work the
same as flags for =libffi= and =libgmp=)
** Issues fixed
- initarg caches are now invalidated when new methods are defined. Problem
found and fixed by Alexander Wood.
- ECL allocated too much space in lisp stack. Instead of the specified size
x in bytes, ECL allocated roughly x^2/p where p is defined in
LISP_PAGESIZE (2048 by default). If you're setting the value of
......@@ -88,8 +86,6 @@ in C code
- No more explicit option in ~main.d~ to trap SIGCHLD asynchronously
- Zombie processes are cleaned in ~external-process~ finalizer. If process
is still referenced in the memory, it's programmer duty to call wait.
- The cleanup forms of an unwind-protect are now executed with interrupts
disabled.
- The ECL_OPT_SIGALTSTACK_SIZE option has been removed, because it had no
effect.
* 16.1.3 changes since 16.1.2
......
......@@ -87,20 +87,14 @@
(*destination* 'VALUES))
(c2expr* form))
(wt-nl "}")
;; Here we disable interrupts for the execution of the cleanup forms...
(wt-nl "ecl_bds_bind(cl_env_copy,ECL_INTERRUPTS_ENABLED,ECL_NIL);")
(wt-nl "ecl_frs_pop(cl_env_copy);")
;; Here we save the values of the form which might have been
;; aborted, and execute some cleanup code. This code may also be
;; aborted by some control structure, it is only protected against
;; interrupts from other threads.
;; aborted, and execute some cleanup code. This code may also
;; be aborted by some control structure, but is not protected.
(wt-nl nargs "=ecl_stack_push_values(cl_env_copy);")
(let ((*destination* 'TRASH))
(c2expr* body))
(wt-nl "ecl_stack_pop_values(cl_env_copy," nargs ");")
;; ...and here we reenable the interrupts.
(wt-nl "ecl_bds_unwind1(cl_env_copy);")
(wt-nl "ecl_check_pending_interrupts(cl_env_copy);")
;; Finally, if the protected form was aborted, jump to the
;; next catch point...
(wt-nl "if (unwinding) ecl_unwind(cl_env_copy,next_fr);")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment