From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] master 0a5b6e2: Fix aborts in GC under GC_CHECK_MARKED_OBJECTS Date: Thu, 22 Dec 2016 18:17:57 +0200 Message-ID: <83inqc0wga.fsf@gnu.org> References: <20161221201813.3130.28327@vcs.savannah.gnu.org> <20161221201813.A13CA2201BA@vcs.savannah.gnu.org> <83oa0510dj.fsf@gnu.org> <83lgv81vr7.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1482423548 25924 195.159.176.226 (22 Dec 2016 16:19:08 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 22 Dec 2016 16:19:08 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 22 17:19:01 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cK655-0005aa-OC for ged-emacs-devel@m.gmane.org; Thu, 22 Dec 2016 17:18:59 +0100 Original-Received: from localhost ([::1]:35002 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cK65A-0001sj-5g for ged-emacs-devel@m.gmane.org; Thu, 22 Dec 2016 11:19:04 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49357) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cK64Z-0001sd-1d for emacs-devel@gnu.org; Thu, 22 Dec 2016 11:18:27 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cK64U-0002Sg-Fo for emacs-devel@gnu.org; Thu, 22 Dec 2016 11:18:26 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37484) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cK64U-0002ST-CQ; Thu, 22 Dec 2016 11:18:22 -0500 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1078 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cK64T-0006ED-Ib; Thu, 22 Dec 2016 11:18:22 -0500 In-reply-to: (message from Stefan Monnier on Wed, 21 Dec 2016 22:45:43 -0500) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:210733 Archived-At: > From: Stefan Monnier > Cc: emacs-devel@gnu.org > Date: Wed, 21 Dec 2016 22:45:43 -0500 > > That there might be on the stack a Lisp_Object variable which holds > a Lisp_Vectorlike references which is really a reference to a thread > object, so the conservative GC would need to be able to recognize them, > AFAICT. So your code doesn't make things worse, but I think that the > problem detected by GC_CHECK_MARKED_OBJECTS needs to be fixed by adding > thread objects to the red-black tree. I think they already are in the tree: the thread object is a Lisp_Vectorlike allocated from some block in vector_blocks, and all the blocks there are already inserted into the tree. Other than that, the few members of thread_state structure are just "normal" Lisp objects, so they are also in the tree.