From patchwork Fri Feb 23 21:11:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 86310 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AC1AF385842D for ; Fri, 23 Feb 2024 21:12:59 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-il1-x133.google.com (mail-il1-x133.google.com [IPv6:2607:f8b0:4864:20::133]) by sourceware.org (Postfix) with ESMTPS id 6C20D385842D for ; Fri, 23 Feb 2024 21:11:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6C20D385842D Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6C20D385842D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::133 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708722704; cv=none; b=Jo0D+Ux+XzwGWLyXkdunOYjesBmKmlmHPlE79Ni/FhKa++FLI4Ps2RxCSbjMbsnrZvI/gvGczG22jrYmLaH3V9Wzpkb1HScV/+BWxlJqQUGTxNCP4qIAKi6Hd6vWbLQtCz3OktvvkbVNdOwlpSAeCGkSVx+Lg9uuB7j/f0mzPas= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708722704; c=relaxed/simple; bh=WFgmQwlbmmf4r2VGs9+Kj+Ev4J46fn2jQ4EPTaoVN80=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=DuMQEcXyKtRXENdQzaRHjidUpfZe1DeKlVO9lmlBHtsbLe7xF7MB9i8H0DTqjxboVXeNU7Srpx4OzE/kCHJ9nXX3OG2EVBr5I8/f5jBmFQLI+7cFrDF+LSxrHeS2GOH4eabcg9/NtndHOIovwT/W02HkYi7mBd3FYrqPX6k7xwM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-il1-x133.google.com with SMTP id e9e14a558f8ab-3657dbe2008so2896945ab.1 for ; Fri, 23 Feb 2024 13:11:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1708722700; x=1709327500; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CRA3MOYXAU8Mk1HXzm1RtWRHUUNG5Ty6EpLN/H3k+s0=; b=aPATYK3ICpK0/8B6E/ECi7oXbe5ld7+LCVjjUJ6LUwNf+XFhjilPzvR8ZqFgVza8uM KmzOd+l6aWfx6nyF1/hKutA/37IdBaWQ7LO8k3Twt4sDIy9MtVm+zYshXhkRKKyuOwwQ tzL/K/iX9TeovTyr8UYpxsiXPc5LNeeIFebTKRgNhJqey97O9BDeCLv/xzDOIt6pit/n WPudhxpuM8q8WytAORKv4ENOCI+5ighSAkQ1DIpKfd8P/igNkohmJIU1r01D5guVI4/2 cY4Fuf/iYrl+EDwwoS0MlPnukN/QS4ZNOJae4WS6HvdK90HS2xs1VtE3/uzkiE/GYrHC YG1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708722700; x=1709327500; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CRA3MOYXAU8Mk1HXzm1RtWRHUUNG5Ty6EpLN/H3k+s0=; b=VzlAUQnnBwSydX188uYJjHFsNeuKhNjbn0Iq+x3CGpxEqimEYlqUzKSpM/CR42bLvX ZB2osI3SwBJlIN8lTQXR1KFD5YI1jSJNTCMofkPElYzJjBbwiMCvJdk9bnQ+X13mBAO8 k+QuzSa3eu8xomMruV1cgELlGse9wLXkfuTB/L5c7Gh+/+eTUDtL2LbmvOJtZQOKWlqo 78MpXdfjMsgTAhnjDoWDCzLXvi7Ed8HYzhw8XOU683SPb94tireWNP9UGJapGWPRhlmd 1/Ru3ZRA+//1AHvS/iB8dzurpak2uUIMK8gRWk7N7adpczeXi1x6zihf9ziaz02HxChx qZYA== X-Gm-Message-State: AOJu0Yy+Nk7nDRkPqR4KYDGZU5LigVYhyYhJwU61HDLQJ9t7wvQhrtdj JOPVSb2OyX83+7wdzQ/Z2nnDE/MeKorctq9Hrs96qiqijL0sL1HbjTBS/Tlq4Fk/f4daJf/Hy2Q = X-Google-Smtp-Source: AGHT+IHfwTk+zOsdcH+NOFCCCn7fAS0fcvIbWj4JY5OOl5ipd+3UGecmR3BBy2bvVsoz17CJxl3JQg== X-Received: by 2002:a92:cd0d:0:b0:365:1749:cae0 with SMTP id z13-20020a92cd0d000000b003651749cae0mr1306017iln.7.1708722700576; Fri, 23 Feb 2024 13:11:40 -0800 (PST) Received: from localhost.localdomain (71-211-170-195.hlrn.qwest.net. [71.211.170.195]) by smtp.gmail.com with ESMTPSA id y14-20020a02c00e000000b004741aec6cdasm3497851jai.25.2024.02.23.13.11.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Feb 2024 13:11:40 -0800 (PST) From: Tom Tromey Date: Fri, 23 Feb 2024 14:11:40 -0700 Subject: [PATCH 4/5] Add final cleanup for runnables MIME-Version: 1.0 Message-Id: <20240223-final-cleanups-v1-4-84d5271e9979@adacore.com> References: <20240223-final-cleanups-v1-0-84d5271e9979@adacore.com> In-Reply-To: <20240223-final-cleanups-v1-0-84d5271e9979@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This changes run-on-main-thread.c to clear 'runnables' in a final cleanup. This avoids an issue where a pending runnable could require Python, but be run after the Python interpreter was finalized. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31172 --- gdb/run-on-main-thread.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gdb/run-on-main-thread.c b/gdb/run-on-main-thread.c index 2d40048de56..7b9807e0eaf 100644 --- a/gdb/run-on-main-thread.c +++ b/gdb/run-on-main-thread.c @@ -133,4 +133,15 @@ _initialize_run_on_main_thread () runnable_event = make_serial_event (); add_file_handler (serial_event_fd (runnable_event), run_events, nullptr, "run-on-main-thread"); + + /* A runnable may refer to an extension language. So, we want to + make sure any pending ones have been deleted before the extension + languages are shut down. */ + add_final_cleanup ([] () + { +#if CXX_STD_THREAD + std::lock_guard lock (runnable_mutex); +#endif + runnables.clear (); + }); }