>>>>> On Mon, 15 Jan 2007 00:01:49 +0100, Chris Moore <[EMAIL PROTECTED]> 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
[EMAIL PROTECTED]
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. */
_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug