Clean up var watcher disabling on thread switching
commitf66174a1b7f8e87e699ecf629563244782291148
authorNoam Postavsky <npostavs@gmail.com>
Sun, 11 Dec 2016 18:08:15 +0000 (11 13:08 -0500)
committerNoam Postavsky <npostavs@gmail.com>
Tue, 13 Dec 2016 02:20:33 +0000 (12 21:20 -0500)
tree9f70e9c40b4ddf57c363300826e155c83583a6ba
parent8db7b65d66f01e90a05cc9f11c67667233d84ca0
Clean up var watcher disabling on thread switching

* src/data.c (Fset_default): Move code into new C level function,
`set_default_internal'.
(set_default_internal): New function, like `Fset_default' but also takes
additional bindflag parameter.
(set_internal): Only call `notify_variable_watchers' if bindflag is not
SET_INTERNAL_THREAD_SWITCH.
* src/eval.c (do_specbind, do_one_unbind): Add bindflag parameter,
passed on to set_internal and set_default_internal.  Adjust callers.
(rebind_for_thread_switch, unbind_for_thread_switch): Pass
SET_INTERNAL_THREAD_SWITCH to do_specbind, do_one_unbind instead of
temporarily adjusting symbol's trapped_write field.
src/data.c
src/eval.c
src/lisp.h