From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12545 invoked by alias); 7 May 2004 06:09:15 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 12537 invoked from network); 7 May 2004 06:09:14 -0000 Received: from unknown (HELO blount.mail.mindspring.net) (207.69.200.226) by sources.redhat.com with SMTP; 7 May 2004 06:09:14 -0000 Received: from user-119a90a.biz.mindspring.com ([66.149.36.10] helo=berman.michael-chastain.com) by blount.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1BLyXe-0000Qe-00; Fri, 07 May 2004 02:09:02 -0400 Received: by berman.michael-chastain.com (Postfix, from userid 502) id DF1994B104; Fri, 7 May 2004 02:09:02 -0400 (EDT) To: gdb-patches@sources.redhat.com, msnyder@redhat.com Subject: [rfa/testsuite/threads] manythreads.exp: cancel outstanding after-blocks Cc: drow@mvista.com, jjohnstn@redhat.com Message-Id: <20040507060902.DF1994B104@berman.michael-chastain.com> Date: Fri, 07 May 2004 06:09:00 -0000 From: mec.gnu@mindspring.com (Michael Elizabeth Chastain) X-SW-Source: 2004-05/txt/msg00181.txt.bz2 [Oops, how about a message body this time!] This patch fixes PR gdb/1636, a problem in manythreads.exp. http://sources.redhat.com/gdb/bugs/1636 manythreads.exp issues async ^C that spills onto next script manythreads.exp creates some asynchronous blocks for sending ^C at a later time. This patch simply cancels the blocks before manythreads.exp exits in case the blocks haven't executed yet. This prevents the async blocks from hanging around and sending their ^C during the middle of the next script, print-threads.exp. I don't know whether these blocks should be async at all, but I'm not touching that part. This just keeps print-threads.exp from barfing during before-and-after runs that I do for any other work. I tested this on native i686-pc-linux-gnu, red hat 8.0, with several gcc's and binutils and both dwarf-2 and stabs+. I did 12 test runs before and after. About 3-4 of the runs in each test group exhibit internal errors in gdb which case manythreads.exp to FAIL. I verified that the next test script, print-threads.exp, was no longer clobbered by this. Okay to commit? 2004-05-07 Michael Chastain Fix PR gdb/1636. * gdb.threads/manythreads.exp: Cancel any outstanding after-blocks. Index: gdb.threads/manythreads.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/manythreads.exp,v retrieving revision 1.1 diff -c -3 -p -r1.1 manythreads.exp *** gdb.threads/manythreads.exp 22 Apr 2004 22:19:40 -0000 1.1 --- gdb.threads/manythreads.exp 7 May 2004 05:59:44 -0000 *************** gdb_test_multiple "continue" "first cont *** 60,66 **** } # Send a Ctrl-C and verify that we can do info threads and continue ! after 1000 {send_gdb "\003"} set message "stop threads 1" gdb_test_multiple "" "stop threads 1" { -re "\\\[New \[^\]\]*\\\]\r\n" { --- 60,66 ---- } # Send a Ctrl-C and verify that we can do info threads and continue ! set after_id_1 [after 1000 {send_gdb "\003"}] set message "stop threads 1" gdb_test_multiple "" "stop threads 1" { -re "\\\[New \[^\]\]*\\\]\r\n" { *************** gdb_test_multiple "continue" "second con *** 93,99 **** } # Send another Ctrl-C and verify that we can do info threads and quit ! after 1000 {send_gdb "\003"} set message "stop threads 2" gdb_test_multiple "" "stop threads 2" { -re "\\\[New \[^\]\]*\\\]\r\n" { --- 93,99 ---- } # Send another Ctrl-C and verify that we can do info threads and quit ! set after_id_2 [after 1000 {send_gdb "\003"}] set message "stop threads 2" gdb_test_multiple "" "stop threads 2" { -re "\\\[New \[^\]\]*\\\]\r\n" { *************** gdb_test_multiple "" "stop threads 2" { *** 109,114 **** --- 109,118 ---- pass "stop threads 2" } } + + # cancel any outstanding after-blocks + after cancel $after_id_1 + after cancel $after_id_2 gdb_test_multiple "quit" "GDB exits after stopping multithreaded program" { -re "The program is running. Exit anyway\\? \\(y or n\\) $" {