From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 7Y8vNSYqKWF2YgAAWB0awg (envelope-from ) for ; Fri, 27 Aug 2021 14:08:38 -0400 Received: by simark.ca (Postfix, from userid 112) id C7EAA1EE1B; Fri, 27 Aug 2021 14:08:38 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,RDNS_DYNAMIC,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 145241ECEB for ; Fri, 27 Aug 2021 14:08:38 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AE79B3857C7B for ; Fri, 27 Aug 2021 18:08:37 +0000 (GMT) Received: from gateway33.websitewelcome.com (gateway33.websitewelcome.com [192.185.146.78]) by sourceware.org (Postfix) with ESMTPS id 452EC3858D34 for ; Fri, 27 Aug 2021 18:08:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 452EC3858D34 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tromey.com Received: from cm12.websitewelcome.com (cm12.websitewelcome.com [100.42.49.8]) by gateway33.websitewelcome.com (Postfix) with ESMTP id D7DFB5A7A0 for ; Fri, 27 Aug 2021 13:08:16 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id JgH2mCF4zBvjyJgH2mnWo3; Fri, 27 Aug 2021 13:08:16 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References :Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Pe8LSE9iMsqEtPitQ7tM13O32FtwjvsUM+CwTiW6VKs=; b=iLxzrtu9IAVcxQtXVYXFrwf5xA teYDiLI8KAHajSSMBpQcEFhnTnkdmgQCxD43qf90+FOio1eI6XwgglhHi/pXxCeZLIwebiB0sm2Gm NC/BLzWKyAff3l1i9We83rCiy; Received: from 97-122-86-84.hlrn.qwest.net ([97.122.86.84]:40706 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mJgH2-002DOZ-Id; Fri, 27 Aug 2021 12:08:16 -0600 From: Tom Tromey To: Patrick Monnerat via Gdb-patches Subject: Re: [PATCH] Add a timeout parameter to gdb_do_one_event References: <20210823182359.104456-1-patrick@monnerat.net> <4e3085bb-af40-e0dc-73aa-991f97243e06@polymtl.ca> <60a52fef-89f0-62f1-1a45-5e5a40f47df6@monnerat.net> X-Attribution: Tom Date: Fri, 27 Aug 2021 12:08:15 -0600 In-Reply-To: <60a52fef-89f0-62f1-1a45-5e5a40f47df6@monnerat.net> (Patrick Monnerat via Gdb-patches's message of "Thu, 26 Aug 2021 13:36:31 +0200") Message-ID: <87wno6n4kw.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.122.86.84 X-Source-L: No X-Exim-ID: 1mJgH2-002DOZ-Id X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-86-84.hlrn.qwest.net (murgatroyd) [97.122.86.84]:40706 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes 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: , Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" >>>>> "Patrick" == Patrick Monnerat via Gdb-patches writes: Patrick> The real implementation makes the GUI event loop call gdb_do_one_event Patrick> and recursively. The actual event waiting is performed by Patrick> gdb_do_one_event, but the GUI may define a timeout for it. The hard Patrick> task here is to avoid infinite recursion. I wonder sometimes how we'll handle integrating event loops when we want to let users integrate Python await with GDB APIs. Patrick> The alternate solution would have been to run the GUI in a separate Patrick> thread, but that's even a bigger work! This is what my Python GUI does, but indeed it's complicated. It needed a hack (to block some signals in the GUI thread), and it has to send Python code back and forth between the GUI thread and the main thread, because GDB isn't thread-safe. Tom