summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-08-15 13:04:34 -0600
committerTom Tromey <tromey@redhat.com>2012-08-15 13:04:34 -0600
commite160922c665ba65e1dba5b87a924927e61be43b9 (patch)
treede8f62c4788a9d641280cabc94767114f462aef4 /lisp/emacs-lisp
parent14b3dc5e4f2cdefde1ba04ddd3525115e7ca7dce (diff)
downloademacs-e160922c665ba65e1dba5b87a924927e61be43b9.tar.gz
emacs-e160922c665ba65e1dba5b87a924927e61be43b9.tar.bz2
emacs-e160922c665ba65e1dba5b87a924927e61be43b9.zip
This introduces some new functions to handle the specpdl. The basic
idea is that when a thread loses the interpreter lock, it will unbind the bindings it has put in place. Then when a thread acquires the lock, it will restore its bindings. This code reuses an existing empty slot in struct specbinding to store the current value when the thread is "swapped out". This approach performs worse than my previously planned approach. However, it was one I could implement with minimal time and brainpower. I hope that perhaps someone else could improve the code once it is in.
Diffstat (limited to 'lisp/emacs-lisp')
0 files changed, 0 insertions, 0 deletions