From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id E96123853810 for ; Thu, 21 Jul 2022 13:11:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E96123853810 Received: from [10.0.0.11] (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 7EDC61E13B; Thu, 21 Jul 2022 09:11:15 -0400 (EDT) Message-ID: Date: Thu, 21 Jul 2022 09:11:15 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v2 09/29] Thread options & clone events (Linux GDBserver) Content-Language: en-US To: Pedro Alves , gdb-patches@sourceware.org References: <20220713222433.374898-1-pedro@palves.net> <20220713222433.374898-10-pedro@palves.net> From: Simon Marchi In-Reply-To: <20220713222433.374898-10-pedro@palves.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2022 13:11:22 -0000 > @@ -4268,15 +4280,16 @@ linux_set_resume_request (thread_info *thread, thread_resume *resume, size_t n) > continue; > } > > - /* Don't let wildcard resumes resume fork children that GDB > - does not yet know are new fork children. */ > + /* Don't let wildcard resumes resume fork/clone children > + that GDB does not yet know are new children. */ > if (lwp->fork_relative != NULL) > { > struct lwp_info *rel = lwp->fork_relative; > > if (rel->status_pending_p > && (rel->waitstatus.kind () == TARGET_WAITKIND_FORKED > - || rel->waitstatus.kind () == TARGET_WAITKIND_VFORKED)) > + || rel->waitstatus.kind () == TARGET_WAITKIND_VFORKED > + || rel->waitstatus.kind () == TARGET_WAITKIND_THREAD_CLONED)) This "is target_waitstatus with child" condition comes back again a few times, this could the helper function I mentioned earlier. Other than that, the changes in handle_extended_wait are quite important, so it's a bit hard to be convinced it's all right, but I didn't spot anything wrong. Simon