From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1015 invoked by alias); 1 Dec 2011 19:46:51 -0000 Received: (qmail 1005 invoked by uid 22791); 1 Dec 2011 19:46:50 -0000 X-SWARE-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-vx0-f169.google.com (HELO mail-vx0-f169.google.com) (209.85.220.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 01 Dec 2011 19:46:36 +0000 Received: by vcbfk26 with SMTP id fk26so2101350vcb.0 for ; Thu, 01 Dec 2011 11:46:35 -0800 (PST) Received: by 10.220.6.207 with SMTP id a15mr1434396vca.70.1322768795743; Thu, 01 Dec 2011 11:46:35 -0800 (PST) MIME-Version: 1.0 Received: by 10.220.6.207 with SMTP id a15mr1434383vca.70.1322768795476; Thu, 01 Dec 2011 11:46:35 -0800 (PST) Received: by 10.220.97.211 with HTTP; Thu, 1 Dec 2011 11:46:35 -0800 (PST) In-Reply-To: References: <20111124000052.14DC12461B1@ruffy.mtv.corp.google.com> <20111127204011.GA4606@host1.jankratochvil.net> Date: Thu, 01 Dec 2011 19:46:00 -0000 Message-ID: Subject: [RFA] Don't immediately SIGTERM the child of "target remote |". From: Doug Evans To: Jan Kratochvil , Eli Zaretskii Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=00032557b05a2ca7fe04b30d1ce9 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-12/txt/msg00013.txt.bz2 --00032557b05a2ca7fe04b30d1ce9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1762 On Sun, Nov 27, 2011 at 2:23 PM, Doug Evans wrote: > On Sun, Nov 27, 2011 at 12:40 PM, Jan Kratochvil > wrote: >> On Thu, 24 Nov 2011 01:00:51 +0100, Doug Evans wrote: >> [...] >>> - =A0 =A0 =A0int status; >>> - =A0 =A0 =A0kill (state->pid, SIGTERM); >>> + =A0 =A0 =A0int rc, status; >>> + =A0 =A0 =A0void (*ofunc) (); =A0 =A0 =A0/* Previous SIGALRM handler. = =A0*/ >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0^int (or void) >>> + >>> + =A0 =A0 =A0/* Don't kill the task right away, give it a chance to shu= t down cleanly. >>> + =A0 =A0 =A0But don't wait forever though. =A0*/ >>> +#if defined (HAVE_SIGACTION) && defined (SA_RESTART) >>> + =A0 =A0 =A0{ >>> + =A0 =A0 struct sigaction sa, osa; >>> + =A0 =A0 sa.sa_handler =3D sigalrm_handler; >>> + =A0 =A0 sigemptyset (&sa.sa_mask); >>> + =A0 =A0 sa.sa_flags =3D 0; >>> + =A0 =A0 sigaction (SIGALRM, &sa, &osa); >>> + =A0 =A0 ofunc =3D osa.sa_handler; >>> + =A0 =A0 =A0} >>> +#else >>> + =A0 =A0 =A0ofunc =3D (void (*)()) signal (SIGALRM, sigalrm_handler); >>> +#endif >> [...] >>> + =A0 =A0 =A0alarm (0); >>> + =A0 =A0 =A0signal (SIGALRM, ofunc); >> >> You should restore OSA, not just OFUNC. > > The code was borrowed from remote-sim.c. > In this case I suspect it doesn't matter, but it's just as well to restor= e osa. > I will check this in on Monday if there are no objections. 2011-12-01 Doug Evans * defs.h (wait_to_die_with_timeout): Declare. * utils.c: #include "gdb_wait.h". (sigalrm_handler, wait_to_die_with_timeout): New functions. * ser-pipe.c: Don't #include "gdb_wait.h". (pipe_close): Give child a chance to die on its own after closing its stdin before SIGTERM'ing it. --00032557b05a2ca7fe04b30d1ce9 Content-Type: text/plain; charset=US-ASCII; name="gdb-111201-ser-pipe-sigterm-2.patch.txt" Content-Disposition: attachment; filename="gdb-111201-ser-pipe-sigterm-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gvo6d1np0 Content-length: 6027 MjAxMS0xMi0wMSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog ZGVmcy5oICh3YWl0X3RvX2RpZV93aXRoX3RpbWVvdXQpOiBEZWNsYXJlLgoJ KiB1dGlscy5jOiAjaW5jbHVkZSAiZ2RiX3dhaXQuaCIuCgkoc2lnYWxybV9o YW5kbGVyLCB3YWl0X3RvX2RpZV93aXRoX3RpbWVvdXQpOiBOZXcgZnVuY3Rp b25zLgoJKiBzZXItcGlwZS5jOiBEb24ndCAjaW5jbHVkZSAiZ2RiX3dhaXQu aCIuCgkocGlwZV9jbG9zZSk6IEdpdmUgY2hpbGQgYSBjaGFuY2UgdG8gZGll IG9uIGl0cyBvd24gYWZ0ZXIgY2xvc2luZwoJaXRzIHN0ZGluIGJlZm9yZSBT SUdURVJNJ2luZyBpdC4KCkluZGV4OiBkZWZzLmgKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9kZWZzLmgsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMzA1CmRpZmYgLXUgLXAgLXIxLjMwNSBk ZWZzLmgKLS0tIGRlZnMuaAkxMCBOb3YgMjAxMSAyMDoyMToyNyAtMDAwMAkx LjMwNQorKysgZGVmcy5oCTEgRGVjIDIwMTEgMTk6NDE6MzAgLTAwMDAKQEAg LTQzOSw2ICs0MzksMTAgQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtl X2Jwc3RhdF9jbGVhcgogCiBleHRlcm4gaW50IHByb2R1Y2VyX2lzX2djY19n ZV80IChjb25zdCBjaGFyICpwcm9kdWNlcik7CiAKKyNpZmRlZiBIQVZFX1dB SVRQSUQKK2V4dGVybiBpbnQgd2FpdF90b19kaWVfd2l0aF90aW1lb3V0IChp bnQgcGlkLCBpbnQgKnN0YXR1cywgaW50IHRpbWVvdXQpOworI2VuZGlmCisK IAwKIC8qIEFubm90YXRpb24gc3R1ZmYuICAqLwogCkluZGV4OiBzZXItcGlw ZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj L3NyYy9nZGIvc2VyLXBpcGUuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4z MgpkaWZmIC11IC1wIC1yMS4zMiBzZXItcGlwZS5jCi0tLSBzZXItcGlwZS5j CTQgTWFyIDIwMTEgMTk6MjM6NDIgLTAwMDAJMS4zMgorKysgc2VyLXBpcGUu YwkxIERlYyAyMDExIDE5OjQxOjMwIC0wMDAwCkBAIC0zMSw3ICszMSw2IEBA CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxmY250bC5oPgog I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKLSNpbmNsdWRlICJnZGJfd2FpdC5o IgogCiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAKQEAgLTE2MywxNCArMTYyLDMw IEBAIHBpcGVfY2xvc2UgKHN0cnVjdCBzZXJpYWwgKnNjYikKIAogICBpZiAo c3RhdGUgIT0gTlVMTCkKICAgICB7Ci0gICAgICBpbnQgc3RhdHVzOwotICAg ICAga2lsbCAoc3RhdGUtPnBpZCwgU0lHVEVSTSk7Ci0jaWZkZWYgSEFWRV9X QUlUUElECisgICAgICBpbnQgd2FpdF9yZXN1bHQsIHN0YXR1czsKKworICAg ICAgLyogRG9uJ3Qga2lsbCB0aGUgdGFzayByaWdodCBhd2F5LCBnaXZlIGl0 IGEgY2hhbmNlIHRvIHNodXQgZG93biBjbGVhbmx5LgorCSBCdXQgZG9uJ3Qg d2FpdCBmb3JldmVyIHRob3VnaC4gICovCisjZGVmaW5lIFBJUEVfQ0xPU0Vf VElNRU9VVCA1CisKICAgICAgIC8qIEFzc3VtZSB0aGUgcHJvZ3JhbSB3aWxs IGV4aXQgYWZ0ZXIgU0lHVEVSTS4gIE1pZ2h0IGJlCiAJIHVzZWZ1bCB0byBw cmludCBhbnkgcmVtYWluaW5nIHN0ZGVyciBvdXRwdXQgZnJvbQogCSBzY2It PmVycm9yX2ZkIHdoaWxlIHdhaXRpbmcuICAqLwotICAgICAgd2FpdHBpZCAo c3RhdGUtPnBpZCwgJnN0YXR1cywgMCk7CisjZGVmaW5lIFNJR1RFUk1fVElN RU9VVCBJTlRfTUFYCisKKyAgICAgIHdhaXRfcmVzdWx0ID0gLTE7CisjaWZk ZWYgSEFWRV9XQUlUUElECisgICAgICB3YWl0X3Jlc3VsdCA9IHdhaXRfdG9f ZGllX3dpdGhfdGltZW91dCAoc3RhdGUtPnBpZCwgJnN0YXR1cywKKwkJCQkJ ICAgICAgUElQRV9DTE9TRV9USU1FT1VUKTsKICNlbmRpZgorICAgICAgaWYg KHdhaXRfcmVzdWx0ID09IC0xKQorCXsKKwkgIGtpbGwgKHN0YXRlLT5waWQs IFNJR1RFUk0pOworI2lmZGVmIEhBVkVfV0FJVFBJRAorCSAgd2FpdF90b19k aWVfd2l0aF90aW1lb3V0IChzdGF0ZS0+cGlkLCAmc3RhdHVzLCBTSUdURVJN X1RJTUVPVVQpOworI2VuZGlmCisJfQorCiAgICAgICBpZiAoc2NiLT5lcnJv cl9mZCAhPSAtMSkKIAljbG9zZSAoc2NiLT5lcnJvcl9mZCk7CiAgICAgICBz Y2ItPmVycm9yX2ZkID0gLTE7CkluZGV4OiB1dGlscy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdXRpbHMu Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNjcKZGlmZiAtdSAtcCAtcjEu MjY3IHV0aWxzLmMKLS0tIHV0aWxzLmMJMTYgTm92IDIwMTEgMTg6MTQ6NTIg LTAwMDAJMS4yNjcKKysrIHV0aWxzLmMJMSBEZWMgMjAxMSAxOTo0MTozMCAt MDAwMApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImdkYl9hc3NlcnQu aCIKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgImdkYl9zdHJpbmcu aCIKKyNpbmNsdWRlICJnZGJfd2FpdC5oIgogI2luY2x1ZGUgImV2ZW50LXRv cC5oIgogI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJnZGJ0 aHJlYWQuaCIKQEAgLTM3NzMsNiArMzc3NCw3OCBAQCBwcm9kdWNlcl9pc19n Y2NfZ2VfNCAoY29uc3QgY2hhciAqcHJvZHVjCiAgIHJldHVybiBtaW5vcjsK IH0KIAorI2lmZGVmIEhBVkVfV0FJVFBJRAorCisjaWZkZWYgU0lHQUxSTQor CisvKiBTSUdBTFJNIGhhbmRsZXIgZm9yIHdhaXRwaWRfd2l0aF90aW1lb3V0 LiAgKi8KKworc3RhdGljIHZvaWQKK3NpZ2Fscm1faGFuZGxlciAoaW50IHNp Z25vKQoreworICAvKiBOb3RoaW5nIHRvIGRvLiAgKi8KK30KKworI2VuZGlm CisKKy8qIFdyYXBwZXIgdG8gd2FpdCBmb3IgY2hpbGQgUElEIHRvIGRpZSB3 aXRoIFRJTUVPVVQuCisgICBUSU1FT1VUIGlzIHRoZSB0aW1lIHRvIHN0b3Ag d2FpdGluZyBpbiBzZWNvbmRzLgorICAgSWYgVElNRU9VVCBpcyB6ZXJvLCBw YXNzIFdOT0hBTkcgdG8gd2FpdHBpZC4KKyAgIFJldHVybnMgUElEIGlmIGl0 IHdhcyBzdWNjZXNzZnVsbHkgd2FpdGVkIGZvciwgb3RoZXJ3aXNlIC0xLgor CisgICBUaW1lb3V0cyBhcmUgY3VycmVudGx5IGltcGxlbWVudGVkIHdpdGgg YWxhcm0gYW5kIFNJR0FMUk0uCisgICBJZiB0aGUgaG9zdCBkb2VzIG5vdCBz dXBwb3J0IHRoZW0sIHRoaXMgd2FpdHMgImZvcmV2ZXIiLgorICAgSXQgd291 bGQgYmUgb2RkIHRob3VnaCBmb3IgYSBob3N0IHRvIGhhdmUgd2FpdHBpZCBh bmQgbm90IFNJR0FMUk0uICAqLworCitpbnQKK3dhaXRfdG9fZGllX3dpdGhf dGltZW91dCAoaW50IHBpZCwgaW50ICpzdGF0dXMsIGludCB0aW1lb3V0KQor eworICBpbnQgd2FpdHBpZF9yZXN1bHQ7CisKKyAgZ2RiX2Fzc2VydCAocGlk ID4gMCk7CisgIGdkYl9hc3NlcnQgKHRpbWVvdXQgPj0gMCk7CisKKyAgaWYg KHRpbWVvdXQgPiAwKQorICAgIHsKKyNpZmRlZiBTSUdBTFJNCisjaWYgZGVm aW5lZCAoSEFWRV9TSUdBQ1RJT04pICYmIGRlZmluZWQgKFNBX1JFU1RBUlQp CisgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhLCBvbGRfc2E7CisKKyAgICAg IHNhLnNhX2hhbmRsZXIgPSBzaWdhbHJtX2hhbmRsZXI7CisgICAgICBzaWdl bXB0eXNldCAoJnNhLnNhX21hc2spOworICAgICAgc2Euc2FfZmxhZ3MgPSAw OworICAgICAgc2lnYWN0aW9uIChTSUdBTFJNLCAmc2EsICZvbGRfc2EpOwor I2Vsc2UKKyAgICAgIHZvaWQgKCpvZnVuYykgKCk7CisKKyAgICAgIG9mdW5j ID0gKHZvaWQgKCopKCkpIHNpZ25hbCAoU0lHQUxSTSwgc2lnYWxybV9oYW5k bGVyKTsKKyNlbmRpZgorCisgICAgICBhbGFybSAodGltZW91dCk7CisjZW5k aWYKKworICAgICAgd2FpdHBpZF9yZXN1bHQgPSB3YWl0cGlkIChwaWQsIHN0 YXR1cywgMCk7CisKKyNpZmRlZiBTSUdBTFJNCisgICAgICBhbGFybSAoMCk7 CisjaWYgZGVmaW5lZCAoSEFWRV9TSUdBQ1RJT04pICYmIGRlZmluZWQgKFNB X1JFU1RBUlQpCisgICAgICBzaWdhY3Rpb24gKFNJR0FMUk0sICZvbGRfc2Es IE5VTEwpOworI2Vsc2UKKyAgICAgIHNpZ25hbCAoU0lHQUxSTSwgb2Z1bmMp OworI2VuZGlmCisjZW5kaWYKKyAgICB9CisgIGVsc2UKKyAgICB3YWl0cGlk X3Jlc3VsdCA9IHdhaXRwaWQgKHBpZCwgc3RhdHVzLCBXTk9IQU5HKTsKKwor ICBpZiAod2FpdHBpZF9yZXN1bHQgPT0gcGlkKQorICAgIHJldHVybiBwaWQ7 CisgIGVsc2UKKyAgICByZXR1cm4gLTE7Cit9CisKKyNlbmRpZiAvKiBIQVZF X1dBSVRQSUQgKi8KKwogLyogUHJvdmlkZSBhIHByb3RvdHlwZSB0byBzaWxl bmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8KIGV4dGVybiBpbml0aWFs aXplX2ZpbGVfZnR5cGUgX2luaXRpYWxpemVfdXRpbHM7CiAK --00032557b05a2ca7fe04b30d1ce9--