emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: the state of the concurrency branch


From: Barry OReilly
Subject: Re: the state of the concurrency branch
Date: Wed, 16 Oct 2013 16:25:04 -0400

Mimicing the style found elsewhere:

diff --git a/src/eval.c b/src/eval.c
index b8a6159..fc16c15 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3488,9 +3488,9 @@ unbind_for_thread_switch (struct thread_state *thr)
 {
   union specbinding *bind;
 
-  for (bind = thr->m_specpdl_ptr; bind != thr->m_specpdl; --bind)
+  for (bind = thr->m_specpdl_ptr; bind > thr->m_specpdl;)
     {
-      if (bind->kind >= SPECPDL_LET)
+      if ((--bind)->kind >= SPECPDL_LET)
        {
          bind->let.saved_value = find_symbol_value (specpdl_symbol (bind));
          do_one_unbind (bind, 0);

With this I can eval the progn many times. I'm not sure why it's 23
the first time, then "23 (#o27, #x17, ?\C-w)" all subsequent times:

  23
  23 (#o27, #x17, ?\C-w) [3 times]

A couple other comments on the concurrency branch:

  • thread-yield should call timer_check. See discussion at:
    http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15045#176

  • condition-variablep should be condition-variable-p


reply via email to

[Prev in Thread] Current Thread [Next in Thread]