emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: 4 week-old pretest bugs


From: YAMAMOTO Mitsuharu
Subject: Re: 4 week-old pretest bugs
Date: Tue, 23 Jan 2007 16:50:31 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/22.0.93 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

>>>>> On Mon, 15 Jan 2007 00:01:49 +0100, Chris Moore <address@hidden> said:

> If not, I'm more than happy to run any test cases you would like me
> to try.  I've tried debugging it in various ways myself, but the
> timing seems to be so touchy that any attempt to observe what's
> going on changes things.

Could you test if the following patch affects the stability?

                                     YAMAMOTO Mitsuharu
                                address@hidden

Index: src/alloc.c
===================================================================
RCS file: /sources/emacs/emacs/src/alloc.c,v
retrieving revision 1.407
diff -c -p -r1.407 alloc.c
*** src/alloc.c 21 Jan 2007 04:18:17 -0000      1.407
--- src/alloc.c 23 Jan 2007 07:43:15 -0000
*************** static pthread_mutex_t alloc_mutex;
*** 131,137 ****
    do                                                    \
      {                                                   \
        if (pthread_equal (pthread_self (), main_thread)) \
!         sigblock (sigmask (SIGIO));                     \
        pthread_mutex_lock (&alloc_mutex);                \
      }                                                   \
    while (0)
--- 131,137 ----
    do                                                    \
      {                                                   \
        if (pthread_equal (pthread_self (), main_thread)) \
!         BLOCK_INPUT;                                  \
        pthread_mutex_lock (&alloc_mutex);                \
      }                                                   \
    while (0)
*************** static pthread_mutex_t alloc_mutex;
*** 140,146 ****
      {                                                   \
        pthread_mutex_unlock (&alloc_mutex);              \
        if (pthread_equal (pthread_self (), main_thread)) \
!         sigunblock (sigmask (SIGIO));                   \
      }                                                   \
    while (0)
  
--- 140,146 ----
      {                                                   \
        pthread_mutex_unlock (&alloc_mutex);              \
        if (pthread_equal (pthread_self (), main_thread)) \
!         UNBLOCK_INPUT;                                        \
      }                                                   \
    while (0)
  
Index: src/blockinput.h
===================================================================
RCS file: /sources/emacs/emacs/src/blockinput.h,v
retrieving revision 1.21
diff -c -p -r1.21 blockinput.h
*** src/blockinput.h    14 Jan 2007 03:24:37 -0000      1.21
--- src/blockinput.h    23 Jan 2007 07:43:15 -0000
*************** Boston, MA 02110-1301, USA.  */
*** 49,55 ****
     interrupt_input_pending to a non-zero value.  If that flag is set
     when input becomes unblocked, UNBLOCK_INPUT will send a new SIGIO.  */
  
! extern int interrupt_input_blocked;
  
  /* Nonzero means an input interrupt has arrived
     during the current critical section.  */
--- 49,55 ----
     interrupt_input_pending to a non-zero value.  If that flag is set
     when input becomes unblocked, UNBLOCK_INPUT will send a new SIGIO.  */
  
! extern volatile int interrupt_input_blocked;
  
  /* Nonzero means an input interrupt has arrived
     during the current critical section.  */
Index: src/keyboard.c
===================================================================
RCS file: /sources/emacs/emacs/src/keyboard.c,v
retrieving revision 1.890
diff -c -p -r1.890 keyboard.c
*** src/keyboard.c      21 Jan 2007 04:18:15 -0000      1.890
--- src/keyboard.c      23 Jan 2007 07:43:16 -0000
*************** extern int errno;
*** 90,96 ****
  /* Variables for blockinput.h: */
  
  /* Non-zero if interrupt input is blocked right now.  */
! int interrupt_input_blocked;
  
  /* Nonzero means an input interrupt has arrived
     during the current critical section.  */
--- 90,96 ----
  /* Variables for blockinput.h: */
  
  /* Non-zero if interrupt input is blocked right now.  */
! volatile int interrupt_input_blocked;
  
  /* Nonzero means an input interrupt has arrived
     during the current critical section.  */




reply via email to

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