Revert "cmp: execute cleanup forms of unwind-protect with interrupts disabled"
This reverts commit b8df7a777c.
This commit is contained in:
parent
3adc8b2219
commit
703771fc3d
2 changed files with 2 additions and 12 deletions
|
|
@ -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);")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue