Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C13F1F.A9425F30" Subject: muto object. X-MimeOLE: Produced By Microsoft Exchange V6.0.4417.0 Date: Mon, 17 Sep 2001 12:22:55 +1000 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: muto object. Thread-Index: AcE/H6k9VWCVsUVLTCmRyUtTMGVaIg== From: "Robert Collins" To: Cc: This is a multi-part message in MIME format. ------_=_NextPart_001_01C13F1F.A9425F30 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Chris,=20 This update to muto handles threads exiting spontaneously without releasing the muto properly. I think it fixes the FIXME you have in ::release, but as I can't see how release can check for other thread activity, it may not have fixed that. The logic it uses is: if we fail to wait for the event, protect ourselves with recover check for the thread having died (should be fast - noop basically) and if it has aquire the muto anyway. There was also a typo in the destructor that could be causing memory leaks within process. Rob ------_=_NextPart_001_01C13F1F.A9425F30 Content-Type: application/octet-stream; name="mutoupdate.patch" Content-Transfer-Encoding: base64 Content-Description: mutoupdate.patch Content-Disposition: attachment; filename="mutoupdate.patch" SW5kZXg6IHN5bmMuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9j eWd3aW4vc3luYy5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOQpkaWZmIC11IC1wIC1yMS4x OSBzeW5jLmNjCi0tLSBzeW5jLmNjCTIwMDEvMDkvMTMgMDE6MDc6MjUJMS4xOQorKysgc3luYy5j YwkyMDAxLzA5LzE3IDAyOjIxOjU3CkBAIC0yOCw3ICsyOCw3IEBAIG11dG8gTk9fQ09QWSBtdXRv X3N0YXJ0OwogI3VuZGVmIFdhaXRGb3JTaW5nbGVPYmplY3QKIAogLyogQ29uc3RydWN0b3IgKi8K LW11dG86Om11dG8gKGludCBpbmgsIGNvbnN0IGNoYXIgKnMpIDogc3luYyAoMCksIHZpc2l0cygw KSwgd2FpdGVycygtMSksIHRpZCAoMCksIG5leHQgKE5VTEwpCittdXRvOjptdXRvIChpbnQgaW5o LCBjb25zdCBjaGFyICpzKSA6IHN5bmMgKDApLCB2aXNpdHMoMCksIHdhaXRlcnMoLTEpLCByZWNv dmVyICgwKSwgdGlkICgwKSwgdGhhbmRsZSAoTlVMTCksIG5leHQgKE5VTEwpCiB7CiAgIC8qIENy ZWF0ZSBldmVudCB3aGljaCBpcyB1c2VkIGluIHRoZSBmYWxsYmFjayBjYXNlIHdoZW4gYmxvY2tp bmcgaXMgbmVjZXNzYXJ5ICovCiAgIGlmICghKGJydXRlZm9yY2UgPSBDcmVhdGVFdmVudCAoaW5o ID8gJnNlY19hbGxfbmloIDogJnNlY19ub25lX25paCwgRkFMU0UsIEZBTFNFLCBuYW1lKSkpCkBA IC00Nyw3ICs0Nyw3IEBAIG11dG86On5tdXRvICgpCiAgICAgcmVsZWFzZSAoKTsKIAogICBIQU5E TEUgaCA9IGJydXRlZm9yY2U7Ci0gIGggPSBOVUxMOworICBicnV0ZWZvcmNlID0gTlVMTDsKICAg LyogSnVzdCBuZWVkIHRvIGNsb3NlIHRoZSBldmVudCBoYW5kbGUgKi8KICAgaWYgKGgpCiAgICAg Q2xvc2VIYW5kbGUgKGgpOwpAQCAtNjQsNiArNjQsNyBAQCBpbnQKIG11dG86OmFjcXVpcmUgKERX T1JEIG1zKQogewogICBEV09SRCB0aGlzX3RpZCA9IEdldEN1cnJlbnRUaHJlYWRJZCAoKTsKKyAg Ym9vbCByZWNvdmVyZWQgPSBmYWxzZTsKIAogICBpZiAodGlkICE9IHRoaXNfdGlkKQogICAgIHsK QEAgLTkwLDYgKzkxLDIwIEBAIG11dG86OmFjcXVpcmUgKERXT1JEIG1zKQogCQlnb3RvIGdvdGl0 OwogCQlicmVhazsKIAkgICAgICBkZWZhdWx0OgorCQkvKiBUaW1lZCBvdXQuIFRoZSBvdGhlciB0 aHJlYWQgY291bGQgaGF2ZSBkaWVkIC4uLiAqLworCQkvKiBvbmx5IG9uZSB0aHJlYWQgaXMgYWxs b3dlZCB0byAncmVjb3ZlcicgdGhlIG11dG8gKi8KKwkJaWYgKEludGVybG9ja2VkSW5jcmVtZW50 ICgmcmVjb3ZlcikgPT0gMSkKKwkJICB7CisJCSAgICBEV09SRCBzdGF0dXM7CisJCSAgICBHZXRF eGl0Q29kZVRocmVhZCAodGhhbmRsZSwgJnN0YXR1cyk7CisJCSAgICBpZiAoc3RhdHVzICE9IFNU SUxMX0FDVElWRSkKKwkJICAgICAgeworCQkJcmVjb3ZlcmVkID0gdHJ1ZTsKKwkJCXZpc2l0cyA9 IDA7CisJCSAgICAgICAgZ290byBnb3RpdDsKKwkJICAgICAgfQorCQkgIH0KKwkJSW50ZXJsb2Nr ZWREZWNyZW1lbnQgKCZyZWNvdmVyKTsKIAkJSW50ZXJsb2NrZWREZWNyZW1lbnQgKCZ3YWl0ZXJz KTsKIAkJcmV0dXJuIDA7CS8qIGZhaWxlZC4gKi8KIAkgICAgICB9CkBAIC05Nyw3ICsxMTIsMjEg QEAgbXV0bzo6YWNxdWlyZSAoRFdPUkQgbXMpCiAgICAgfQogCiBnb3RpdDoKLSAgdGlkID0gdGhp c190aWQ7CS8qIHJlZ2lzdGVyIHRoaXMgdGhyZWFkLiAqLworICBpZiAodGlkICE9IHRoaXNfdGlk KQorICAgIHsKKyAgICAgIHRpZCA9IHRoaXNfdGlkOwkvKiByZWdpc3RlciB0aGlzIHRocmVhZC4g Ki8KKyAgICAgIGlmICh0aGFuZGxlKQorCUNsb3NlSGFuZGxlICh0aGFuZGxlKTsKKyAgICAgIER1 cGxpY2F0ZUhhbmRsZSAoR2V0Q3VycmVudFByb2Nlc3MgKCksCisJCQlHZXRDdXJyZW50VGhyZWFk ICgpLAorCQkJR2V0Q3VycmVudFByb2Nlc3MgKCksCisJCQkmdGhhbmRsZSwKKwkJCVRIUkVBRF9R VUVSWV9JTkZPUk1BVElPTiwKKwkJCUZBTFNFLCAwKTsKKyAgICAgIGlmIChyZWNvdmVyZWQpCisJ SW50ZXJsb2NrZWREZWNyZW1lbnQgKCZyZWNvdmVyKTsKKyAgICB9CisKICAgcmV0dXJuICsrdmlz aXRzOwkvKiBJbmNyZW1lbnQgdmlzaXQgY291bnQuICovCiB9CiAKQEAgLTExNyw2ICsxNDYsMTAg QEAgbXV0bzo6cmVsZWFzZSAoKQogICBpZiAoIS0tdmlzaXRzKQogICAgIHsKICAgICAgIHRpZCA9 IDA7CQkvKiBXZSB3ZXJlIHRoZSBsYXN0IHVubG9ja2VyLiAqLworICAgICAgaWYgKHRoYW5kbGUp CisJQ2xvc2VIYW5kbGUgKHRoYW5kbGUpOworICAgICAgdGhhbmRsZSA9IE5VTEw7CisgICAgICBy ZWNvdmVyID0gMDsKICAgICAgICh2b2lkKSBJbnRlcmxvY2tlZEV4Y2hhbmdlICgmc3luYywgMCk7 IC8qIFJlc2V0IHRyaWdnZXIuICovCiAgICAgICAvKiBUaGlzIHRocmVhZCBoYWQgaW5jcmVtZW50 ZWQgd2FpdGVycyBidXQgaGFkIG5ldmVyIGRlY3JlbWVudGVkIGl0LgogCSBEZWNyZW1lbnQgaXQg bm93LiAgSWYgaXQgaXMgPj0gMCB0aGVuIHRoZXJlIGFyZSBwb3NzaWJseSBvdGhlcgpAQCAtMTMz LDYgKzE2Niw5IEBAIHZvaWQKIG11dG86OnJlc2V0ICgpCiB7CiAgIHZpc2l0cyA9IHN5bmMgPSB0 aWQgPSAwOworICBpZiAodGhhbmRsZSkKKyAgICBDbG9zZUhhbmRsZSAodGhhbmRsZSk7CisgIHRo YW5kbGUgPSBOVUxMOwogICBJbnRlcmxvY2tlZEV4Y2hhbmdlICgmd2FpdGVycywgLTEpOwogICBp ZiAoYnJ1dGVmb3JjZSkKICAgICB7CkluZGV4OiBzeW5jLmgKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vc3luYy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjEzCmRpZmYgLXUgLXAgLXIxLjEzIHN5bmMuaAotLS0gc3luYy5oCTIwMDEvMDkvMTEgMjA6MDE6 MDEJMS4xMworKysgc3luYy5oCTIwMDEvMDkvMTcgMDI6MjE6NTcKQEAgLTE3LDggKzE3LDEwIEBA IGNsYXNzIG11dG8KICAgTE9ORyBzeW5jOwkvKiBVc2VkIHRvIHNlcmlhbGl6ZSBhY2Nlc3MgdG8g dGhpcyBjbGFzcy4gKi8KICAgTE9ORyB2aXNpdHM7CS8qIENvdW50IG9mIG51bWJlciBvZiB0aW1l cyBhIHRocmVhZCBoYXMgY2FsbGVkIGFjcXVpcmUuICovCiAgIExPTkcgd2FpdGVyczsJLyogTnVt YmVyIG9mIHRocmVhZHMgd2FpdGluZyBmb3IgbG9jay4gKi8KKyAgTE9ORyByZWNvdmVyOyAvKiBQ cm90ZWN0aW9uIGZvciByZWNvdmVyaW5nIGZyb20gYSBkZWFkIHRocmVhZCBzaXR1YXRpb24gKi8K ICAgSEFORExFIGJydXRlZm9yY2U7IC8qIGV2ZW50IGhhbmRsZSB1c2VkIHRvIGNvbnRyb2wgd2Fp dGluZyBmb3IgbG9jay4gKi8KICAgRFdPUkQgdGlkOwkvKiBUaHJlYWQgSWQgb2YgbG9jayBvd25l ci4gKi8KKyAgSEFORExFIHRoYW5kbGU7IC8qIHNsaWdodGx5IG1vcmUgZXhwZW5zaXZlIHRoYW4g dGlkLCB1c2VkIHRvIGRldGVjdCB0aHJlYWQgZXhpdHMgKi8KIHB1YmxpYzoKICAgY2xhc3MgbXV0 byAqbmV4dDsKICAgY29uc3QgY2hhciAqbmFtZTsK ------_=_NextPart_001_01C13F1F.A9425F30--