From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Re: Reachable killed buffers Date: Mon, 10 Sep 2012 19:15:58 +0400 Message-ID: <504E042E.5040100@yandex.ru> References: <504848D0.4020908@yandex.ru> <5048D826.3040103@yandex.ru> <5049C400.8070400@gmx.at> <504DB6DD.9030002@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070702050302030306050002" X-Trace: ger.gmane.org 1347290180 8484 80.91.229.3 (10 Sep 2012 15:16:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 10 Sep 2012 15:16:20 +0000 (UTC) Cc: martin rudalics , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Sep 10 17:16:21 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TB5il-0001pF-LC for ged-emacs-devel@m.gmane.org; Mon, 10 Sep 2012 17:16:19 +0200 Original-Received: from localhost ([::1]:40755 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB5ii-0002Ma-71 for ged-emacs-devel@m.gmane.org; Mon, 10 Sep 2012 11:16:16 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:55114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB5iX-0002MO-Oa for emacs-devel@gnu.org; Mon, 10 Sep 2012 11:16:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TB5iT-0004Sb-3J for emacs-devel@gnu.org; Mon, 10 Sep 2012 11:16:05 -0400 Original-Received: from forward9.mail.yandex.net ([77.88.61.48]:43711) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TB5iS-0004SF-I6 for emacs-devel@gnu.org; Mon, 10 Sep 2012 11:16:01 -0400 Original-Received: from smtp6.mail.yandex.net (smtp6.mail.yandex.net [77.88.61.56]) by forward9.mail.yandex.net (Yandex) with ESMTP id 08E45CE1A38; Mon, 10 Sep 2012 19:15:58 +0400 (MSK) Original-Received: from smtp6.mail.yandex.net (localhost [127.0.0.1]) by smtp6.mail.yandex.net (Yandex) with ESMTP id C72CC1640755; Mon, 10 Sep 2012 19:15:58 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp6.mail.yandex.net (nwsmtp/Yandex) with ESMTP id FwOCQWgD-FwO04TnJ; Mon, 10 Sep 2012 19:15:58 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1347290158; bh=Q8BXWQIfTtlvielLGkhqhWVOR0iMQRTK6SzPwvLgPko=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=CUJdSD0wBQMyXQJ209PnUV5PZykvBvZt89srzZAC5+sITm6kSFOFBe4itCK8I0+wF dvbWeda5k44hkrF4ZBRuVzErAH1Lpmp0IOCvCFXyNzqo3LM1r4GqD0H1ZnNnHEK61J MG9s/iRy2KMMwFO8mkpwNPipAiBRnikBMqvefonI= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120824 Thunderbird/15.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 77.88.61.48 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:153218 Archived-At: This is a multi-part message in MIME format. --------------070702050302030306050002 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 09/10/2012 05:25 PM, Stefan Monnier wrote: > Hmm... how can we find those? I guess we could handle it during GC when > we mark the BLV. [...skip...] > I think here as well the problem is how to find those windows, and again > I think the easiest is to do it during GC. Like this? Dmitry --------------070702050302030306050002 Content-Type: text/plain; charset=UTF-8; name="unref_killed_buffers.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="unref_killed_buffers.patch" PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9hbGxvYy5jJwotLS0gc3JjL2FsbG9jLmMJMjAxMi0w OS0wNyAwNzoyNDowOCArMDAwMAorKysgc3JjL2FsbG9jLmMJMjAxMi0wOS0xMCAxNTowNDox NSArMDAwMApAQCAtNjAwOSw2ICs2MDA5LDEyIEBACiAJICAgIHsKIAkgICAgICBzdHJ1Y3Qg d2luZG93ICp3ID0gKHN0cnVjdCB3aW5kb3cgKikgcHRyOwogCisJICAgICAgLyogTGlzcCBj b2RlIHJlbW92ZXMga2lsbGVkIGJ1ZmZlcnMgZnJvbSBidWZmZXIgbGlzdHMKKwkJIG9mIGxp dmUgd2luZG93cy4gIEZvciBkZWFkIHdpbmRvd3MsIHdlIGRvIGl0IGhlcmUKKwkJIGluIGF0 dGVtcHQgdG8gaGVscCBHQyB0byByZWNsYWltIGtpbGxlZCBidWZmZXJzLiAgKi8KKwkgICAg ICBpZiAoIVdJTkRPV19WQUxJRF9QIChvYmopKQorCQl3aW5kb3dfZHJhaW5fYnVmZmVyX2xp c3RzICh3KTsKKwogCSAgICAgIG1hcmtfdmVjdG9ybGlrZSAocHRyKTsKIAkgICAgICAvKiBN YXJrIGdseXBocyBmb3IgbGVhZiB3aW5kb3dzLiAgTWFya2luZyB3aW5kb3cKIAkJIG1hdHJp Y2VzIGlzIHN1ZmZpY2llbnQgYmVjYXVzZSBmcmFtZSBtYXRyaWNlcwpAQCAtNjA4MSwxMCAr NjA4NywxMCBAQAogCSAgY2FzZSBTWU1CT0xfTE9DQUxJWkVEOgogCSAgICB7CiAJICAgICAg c3RydWN0IExpc3BfQnVmZmVyX0xvY2FsX1ZhbHVlICpibHYgPSBTWU1CT0xfQkxWIChwdHIp OwotCSAgICAgIC8qIElmIHRoZSB2YWx1ZSBpcyBmb3J3YXJkZWQgdG8gYSBidWZmZXIgb3Ig a2V5Ym9hcmQgZmllbGQsCi0JCSB0aGVzZSBhcmUgbWFya2VkIHdoZW4gd2Ugc2VlIHRoZSBj b3JyZXNwb25kaW5nIG9iamVjdC4KLQkJIEFuZCBpZiBpdCdzIGZvcndhcmRlZCB0byBhIEMg dmFyaWFibGUsIGVpdGhlciBpdCdzIG5vdAotCQkgYSBMaXNwX09iamVjdCB2YXIsIG9yIGl0 J3Mgc3RhdGljcHJvJ2QgYWxyZWFkeS4gICovCisJICAgICAgLyogSWYgdGhlIHZhbHVlIGlz IHNldCB1cCBmb3IgYSBraWxsZWQgYnVmZmVyIG9yIGRlbGV0ZWQKKwkJIGZyYW1lLCByZXN0 b3JlIGl0J3MgZ2xvYmFsIGJpbmRpbmcuICAqLworCSAgICAgIGlmIChvcnBoYW5lZF9sb2Nh bF9iaW5kaW5nIChibHYpKQorCQlzd2FwX2luX2dsb2JhbF9iaW5kaW5nIChwdHIpOwogCSAg ICAgIG1hcmtfb2JqZWN0IChibHYtPndoZXJlKTsKIAkgICAgICBtYXJrX29iamVjdCAoYmx2 LT52YWxjZWxsKTsKIAkgICAgICBtYXJrX29iamVjdCAoYmx2LT5kZWZjZWxsKTsKCj09PSBt b2RpZmllZCBmaWxlICdzcmMvZGF0YS5jJwotLS0gc3JjL2RhdGEuYwkyMDEyLTA5LTA5IDE2 OjA2OjMzICswMDAwCisrKyBzcmMvZGF0YS5jCTIwMTItMDktMTAgMTU6MTE6NDIgKzAwMDAK QEAgLTEwMjAsNyArMTAyMCwxOCBAQAogCXN0b3JlX3N5bXZhbF9mb3J3YXJkaW5nIChibHYt PmZ3ZCwgYmx2X3ZhbHVlIChibHYpLCBOVUxMKTsKICAgICB9CiB9Ci0MCisKKy8qIFRydWUg aWYgYmluZGluZyBpcyBzZXQgdXAgZm9yIGEga2lsbGVkIGJ1ZmZlciBvciBkZWxldGVkIGZy YW1lLiAgKi8KKworYm9vbAorb3JwaGFuZWRfbG9jYWxfYmluZGluZyAoc3RydWN0IExpc3Bf QnVmZmVyX0xvY2FsX1ZhbHVlICpibHYpCit7CisgIExpc3BfT2JqZWN0IHdoZXJlID0gYmx2 LT53aGVyZTsKKworICByZXR1cm4gKChCVUZGRVJQICh3aGVyZSkgJiYgTklMUCAoQlZBUiAo WEJVRkZFUiAod2hlcmUpLCBuYW1lKSkpCisJICB8fCAoRlJBTUVQICh3aGVyZSkgJiYgIUZS QU1FX0xJVkVfUCAoWEZSQU1FICh3aGVyZSkpKSk7Cit9CisKIC8qIEZpbmQgdGhlIHZhbHVl IG9mIGEgc3ltYm9sLCByZXR1cm5pbmcgUXVuYm91bmQgaWYgaXQncyBub3QgYm91bmQuCiAg ICBUaGlzIGlzIGhlbHBmdWwgZm9yIGNvZGUgd2hpY2gganVzdCB3YW50cyB0byBnZXQgYSB2 YXJpYWJsZSdzIHZhbHVlCiAgICBpZiBpdCBoYXMgb25lLCB3aXRob3V0IHNpZ25hbGluZyBh biBlcnJvci4KCj09PSBtb2RpZmllZCBmaWxlICdzcmMvbGlzcC5oJwotLS0gc3JjL2xpc3Au aAkyMDEyLTA5LTEwIDAxOjE3OjIzICswMDAwCisrKyBzcmMvbGlzcC5oCTIwMTItMDktMTAg MTQ6MjY6MTggKzAwMDAKQEAgLTI2MTUsNiArMjYxNSw3IEBACiBleHRlcm4gdm9pZCBzZXRf aW50ZXJuYWwgKExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIGJvb2wp OwogZXh0ZXJuIHZvaWQgc3ltc19vZl9kYXRhICh2b2lkKTsKIGV4dGVybiB2b2lkIGluaXRf ZGF0YSAodm9pZCk7CitleHRlcm4gYm9vbCBvcnBoYW5lZF9sb2NhbF9iaW5kaW5nIChzdHJ1 Y3QgTGlzcF9CdWZmZXJfTG9jYWxfVmFsdWUgKik7CiBleHRlcm4gdm9pZCBzd2FwX2luX2ds b2JhbF9iaW5kaW5nIChzdHJ1Y3QgTGlzcF9TeW1ib2wgKik7CiAKIC8qIERlZmluZWQgaW4g Y21kcy5jICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3dpbmRvdy5jJwotLS0gc3JjL3dp bmRvdy5jCTIwMTItMDktMDUgMDc6MTg6NDYgKzAwMDAKKysrIHNyYy93aW5kb3cuYwkyMDEy LTA5LTEwIDE0OjU5OjAwICswMDAwCkBAIC0zMDAyLDcgKzMwMDIsNDIgQEAKICAgRk9SX0VB Q0hfRlJBTUUgKHRhaWwsIGZyYW1lKQogICAgIHdpbmRvd19sb29wIChSRVBMQUNFX0JVRkZF Ul9JTl9XSU5ET1dTX1NBRkVMWSwgYnVmZmVyLCAxLCBmcmFtZSk7CiB9Ci0MCisKKy8qIENo YW5nZSBhbGlzdCBzdGFydGVkIGF0IEFMSVNUUFRSIHNvIGl0IGRvZXNuJ3QgY29udGFpbnMg YW4gaXRlbXMgd2hvc2UKKyAgIGNhciBpcyBhIGtpbGxlZCBidWZmZXIuICAqLworCitzdGF0 aWMgaW5saW5lIHZvaWQKK2RlbGV0ZV9raWxsZWRfYnVmZmVycyAoTGlzcF9PYmplY3QgKmFs aXN0cHRyKQoreworICBMaXNwX09iamVjdCB0YWlsLCBwcmV2LCBidWZmZXI7CisKKyAgZWFz c2VydCAoYWxpc3RwdHIgIT0gTlVMTCk7CisgIGZvciAodGFpbCA9ICphbGlzdHB0ciwgcHJl diA9IFFuaWw7IENPTlNQICh0YWlsKTsgdGFpbCA9IFhDRFIgKHRhaWwpKQorICAgIHsKKyAg ICAgIGJ1ZmZlciA9IENBUiAoWENBUiAodGFpbCkpOworICAgICAgQ0hFQ0tfQlVGRkVSIChi dWZmZXIpOworICAgICAgaWYgKE5JTFAgKEJWQVIgKFhCVUZGRVIgKGJ1ZmZlciksIG5hbWUp KSkKKwl7CisJICBpZiAoTklMUCAocHJldikpCisJICAgICphbGlzdHB0ciA9IFhDRFIgKHRh aWwpOworCSAgZWxzZQorCSAgICBYU0VUQ0RSIChwcmV2LCBYQ0RSICh0YWlsKSk7CisJfQor ICAgICAgZWxzZQorCXByZXYgPSB0YWlsOworICAgIH0KK30KKworLyogRGVsZXRlIGtpbGxl ZCBidWZmZXJzIGZyb20gYm90aCBXJ3Mgd2luZG93IGxpc3RzLiAgQ2FsbGVkIGR1cmluZyBH QworICAgZm9yIGRlYWQgd2luZG93cyBvbmx5LiAgKi8KKwordm9pZAord2luZG93X2RyYWlu X2J1ZmZlcl9saXN0cyAoc3RydWN0IHdpbmRvdyAqdykKK3sKKyAgZGVsZXRlX2tpbGxlZF9i dWZmZXJzICgmdy0+cHJldl9idWZmZXJzKTsKKyAgZGVsZXRlX2tpbGxlZF9idWZmZXJzICgm dy0+bmV4dF9idWZmZXJzKTsKK30KKwogLyogSWYgKlJPV1Mgb3IgKkNPTFMgYXJlIHRvbyBz bWFsbCBhIHNpemUgZm9yIEZSQU1FLCBzZXQgdGhlbSB0byB0aGUKICAgIG1pbmltdW0gYWxs b3dhYmxlIHNpemUuICAqLwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3dpbmRvdy5oJwot LS0gc3JjL3dpbmRvdy5oCTIwMTItMDktMDUgMTc6MDU6MzIgKzAwMDAKKysrIHNyYy93aW5k b3cuaAkyMDEyLTA5LTEwIDE0OjU5OjI3ICswMDAwCkBAIC05NzgsNiArOTc4LDcgQEAKIGV4 dGVybiB2b2lkIHRlbXBfb3V0cHV0X2J1ZmZlcl9zaG93IChMaXNwX09iamVjdCk7CiBleHRl cm4gdm9pZCByZXBsYWNlX2J1ZmZlcl9pbl93aW5kb3dzIChMaXNwX09iamVjdCk7CiBleHRl cm4gdm9pZCByZXBsYWNlX2J1ZmZlcl9pbl93aW5kb3dzX3NhZmVseSAoTGlzcF9PYmplY3Qp OworZXh0ZXJuIHZvaWQgd2luZG93X2RyYWluX2J1ZmZlcl9saXN0cyAoc3RydWN0IHdpbmRv dyAqKTsKIGV4dGVybiB2b2lkIGluaXRfd2luZG93X29uY2UgKHZvaWQpOwogZXh0ZXJuIHZv aWQgaW5pdF93aW5kb3cgKHZvaWQpOwogZXh0ZXJuIHZvaWQgc3ltc19vZl93aW5kb3cgKHZv aWQpOwoK --------------070702050302030306050002--