From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id wqTmLwNC/WlkbiAAWB0awg (envelope-from ) for ; Thu, 07 May 2026 21:53:07 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=q5hXzfir; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id B27FE1E093; Thu, 07 May 2026 21:53:07 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id B30F01E093 for ; Thu, 07 May 2026 21:53:05 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 306AA4BA2E1E for ; Fri, 8 May 2026 01:53:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 306AA4BA2E1E Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=q5hXzfir Received: from YT5PR01CU002.outbound.protection.outlook.com (mail-canadacentralazon11021076.outbound.protection.outlook.com [40.107.192.76]) by sourceware.org (Postfix) with ESMTPS id CD56F4BA540B for ; Fri, 8 May 2026 01:52:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CD56F4BA540B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CD56F4BA540B Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=40.107.192.76 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1778205158; cv=pass; b=THd30h+exEVSG+Lgt7AJ8F/vUBYLRxsCLjCiOSSwuPv/GZaMyPTV8tdWBFTKJ9Fmf7/pZWxmzRWGSQ8IPwM9FFKMSjxTh18fHeumUeLKA+tS68i1kxSueGCaDkLaYAnl1PnLjijrl05MgpNIS04GwfPzAboHyeBXBI6UEydmPiU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1778205158; c=relaxed/simple; bh=caVvlNyAEot6+E9jyaKMRGZb/ldVFt5hvQN5FKw/4co=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=F7QRZgqZwF/32/s6zqInlD8mtlTgSG44jFoLUApaRSaiBbNMvIpSbqX2y92RcpgLDN92PBnH96JV/DhKftKhw8Ib9E9cFF5Aa3UELgLJuXq1cRZUu+KaKfSb5E+4mjPIZYpDAtHvGuMu8/nsZd/SkKyupHsythk1+lD3Mp21UuE= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=q5hXzfir DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CD56F4BA540B ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K84+R6d3XOh/4Cv092cnfW4rtkZECjn4nEGuKka62LPmQfp/hve0cMISWBOVL5N0pjM+QmVEIfCcuBG0q5KnE2WLVlaCTJQvJV4ufG2gG55cR3qUZfn0tEPgcmEOhV2mbBPYHKflgxF5mC7BdyqXGypl8KvMjoEEYlvwLJDkhoHhfgYxR8jEvxA6RGjA3UiVCctV34/wr1MHgMOaMT0VlzFlATX5BxcU0m33vF3oC/7GuGoqPHdHN5hLAHuwSw6qPJbn/oCYeww81ctYqLbNp5ZUhp6LhvdewgSHpiMCJ1Uso/kMtLHj7vDQ2gIllr0hSkQWS9QsfCivISZ3U6Dw8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ud+c27d0VRi1ay7UYcMYCmqUKgvUq+/nVY0k4N/ZpaA=; b=q2aqdZzRGT15LSRsJkL1OJ2kj6MLyQBOnSVN/Uuia0TPCKFFVJbFQw9ZoEuibcu/2IKBJ8Y/IQQsKON1shwuQGU6Ktcj+T2fZdTwNLOBqhrlcW62xNA+Uwmm7ewQrMFNzS5r6J8e6YaGpWgrcHmILzJo5IItjcbjkbfllWALmwSFMmj0sMjgosLb9ontcIRAW2qRf5biUCfJ+8pXvpiuH/hYBdZwKAnn7rZwxk+Q2NM4619OfKFOmNVTVYEnz0kf8/C1e+7xng+1D8fTOOrXaf3Svx2KQut2u/w4DG9R4/AKbgvAP9dswACSqyQJzKVbCgdPm8ZMvDEpysljKlwTzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ud+c27d0VRi1ay7UYcMYCmqUKgvUq+/nVY0k4N/ZpaA=; b=q5hXzfirL/2eirvGVf+36Qqp9ZDPu4toTFl/e+sQdMKXuj8M8bfWgFYP0snBwmwefHQo50e5jRX9FaYolGBijyupI3z7J75W4xLXsYPJ0zDianxbjji6Wo2b8jKQIgvkSLzjDhLtt36soPMfX0+v7g9ZsDC+eFKWgCnQEiiQqO/0AJfLiz52hU7T3ESdb2w3wX2h45h4nDKDLiMkFPT+LE1rNrS6VN7Qm46iEHaT+GCPFrlRv17Wgi/+tb9LFm3fvzJd95LWDyzhc4JrLjq9TNr00JdDoxJyiii29QRnhIYQjY2cVk/eQ/ULDEy4j4KtIalbZqWtTgq3kLO3RpbWIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) by YQBPR0101MB9903.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:7b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Fri, 8 May 2026 01:52:33 +0000 Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d]) by YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d%3]) with mapi id 15.20.9891.017; Fri, 8 May 2026 01:52:33 +0000 Message-ID: <0b5b68fc-2eed-46c8-a6a8-c5826f40ece3@efficios.com> Date: Thu, 7 May 2026 21:52:32 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 4/11] gdb/solib-rocm: add cached_fd to manage cached fd lifetime To: Lancelot SIX Cc: gdb-patches@sourceware.org References: <20251209193610.296085-5-simon.marchi@efficios.com> Content-Language: fr From: Simon Marchi In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBPR01CA0044.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2::16) To YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5418:EE_|YQBPR0101MB9903:EE_ X-MS-Office365-Filtering-Correlation-Id: 24a909de-51ed-4758-8808-08deaca478c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|366016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: 9Ax57atu3br7453PvWvV2pN3PavayST0DtqTERvlmmOvYKaKWGiv7ULTsgoMQDVK3PLIy3rQQQO7UBB27Xr5lhsLVk2wdSkR/VV11xtq+cP4qZYs+GsBE3Yr5EfV2wugyEcUNQQoSuaV9/rQnYIr6xPfNtPZ6n2SKMCswWdA/n/jUNd08sLdVYbZKXadJOzdA8so/pggP/9DgbrvEJrQnFV5i8RhFyXBstEr+kI+lK35DniUThGHxCKdYH0jgvTHbmTlQdIYupFfSt8QcH99Sr7FQvR53MIS6KiPfZxD5JIUnkg8hRVhnegLc41s/Fk6QTaLykrjnEHrk8zJAEvQPDuvhnJA6RIABANlWe+vaLWNok2qpRyJnS1uaFze81BJVRRNqNlMtopkRS2vPA4sfjAtdrc3v+9XnKOZQdp0KXPZkkJEmADw3ELJIDvLrcxHmg3ikgOE/K7X2sGPqcwjPV7eM1RKrsTWEVzBlcWi+Njxnm6vfFMDK7QKmktt0A1hP8PYktHZVQHX8LlMvxjSoxjOrdy6Lg90/DIQSgLxXXuO4/Szhx92qCVe//P94ACcmkZ+PSjIO15smp2tgugauU9HeSUEPB/NHEowVGmAJkgEDTBhYOLwHDdBWPHuNeGcQLbVAMWO1rk7A2mL+9QDGtR0aVlVE3I3cny2ispWvg98LjiT2Rslm4Q88xOqdWup X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(22082099003)(56012099003)(18002099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OG80M1cwbnBoeDNNVkIvOWE2SExMNDJCbXU1ZUFHQzVOMEFUMHcyTGNXM0RL?= =?utf-8?B?OHV3bnowdzdIbnVEYllPajQ2WkxZbUZST1BtWEp0eWFvNXNUSmdrWHR6SFNH?= =?utf-8?B?VklRR0kvMTFzdlpEd0E1Z0NDVFQwZVRLN2JtVjRsY2JWdmEycEdHL0xwRjAx?= =?utf-8?B?YVRZWnV5REJHUE5qSjlUWHNxSEMvcHpFVXI5VEJkOGU1MW1VWWRXN0xETU9P?= =?utf-8?B?Znp2RUhPc1BqMXFnVXMxbWFsWVJKd1dwTituVkUrRVIwYmpXTUFScldWUnF6?= =?utf-8?B?T055RHlHcTVBRGc5RHprMmRSanIxUDdEbkNWcWVVZGlNbGZrRVMwMUV0NVpl?= =?utf-8?B?elhCdFFwSmp0cko0b2hrTFVma0ZJbUxzUWZyRGZyell4VEVzSWVMRm0vMGpm?= =?utf-8?B?ZUZQSUdCWklpWmRsT2ExSFZiZGR1T3h5YmtyNHVSRElLK3N0MVY0VENSZmdX?= =?utf-8?B?V2RZRENxbEFpbCtmM0prTCtQcEdOYkN0djh3UjZHZlF1WnpaNmtKN0dhNTlJ?= =?utf-8?B?QUV3SHhkQmgrSzcyYTVsYVpnMHBINHUraFhEdUlIN3Z1WUMwMmR1TFY4RVMv?= =?utf-8?B?YTBRRkhDYmFxV2ZIYVptRDRVNm1ibWVXUFJ4NmRma1gxUGZLdDZYNWJTUHlL?= =?utf-8?B?UDhyVlVQaExpRTZJbVJTaWp4blM0N2luY3lDOVpJRXZUNlZMSHFNTlprWHg0?= =?utf-8?B?WGpMUThQUWZVK3g2S3J6YTAraG42ZWdLcFBZN1hiVFNydHJtbXFkc0F3R2U0?= =?utf-8?B?QXJ1UEtMSW1ELzZvQzFYTXkxU01ZVWwraGVkSG9pQkxvU1JJNWduaFZJS3k5?= =?utf-8?B?b1FlQXFkd0tUNllFcWNkMkhXUDhycGFTdnBhS1ZvblVURjc3Q0FrVkdYSVQw?= =?utf-8?B?WWp1aEszNmN5WGlNdnpGRHFkSlVldkVPWnpVNWlMOGFWcUZ2RndZQmxoaXlt?= =?utf-8?B?cU1yc004QWY1VEdid2RjV3pzK2svM2VVMDdhVmN1Tm9MNnRXT0ZBbTI2eWVx?= =?utf-8?B?QU56d0lad05MYVVQWVU0UVlUUFJNR25JdVNwNUJqdkJKd0psM3VXRTcxTVF5?= =?utf-8?B?M0hlMG94Y2RnUzg3a3lEMDFjcmJkbVd2SWNFVzdwc2g2dWQ5S3hYaVllUzlx?= =?utf-8?B?VGVQTUFHakUwcFFQa2FKcU9FUEJScVF0MG45VDNxTXBIRUVWYVMyZCt5TXJK?= =?utf-8?B?Z1BJV01TRE5JWmZwZXZRSHZWekt0RTJQcmV2bHNaditCdzdCWEI1cVBGQWp2?= =?utf-8?B?S2ZZYU5YNzlZUk9DdGlGMVZpcXdUTGEvbGN0RWdzbmZ2dEVQeW9BaFNiOUZU?= =?utf-8?B?azcvSHVHZWJxOG90RVcyN0twaGJXbWs2RVFCZ3JqaCt6UHcrTzcyUW5RU0g5?= =?utf-8?B?RENlYnF0WE5ZU3FnbHhMeGlwQ01aRGpaM2RsbUQxSkZuTmIxWDdiN2x6WnJJ?= =?utf-8?B?cUJENFRGVnhBREVhRjVyS3ZlTVJpVkVBaHBSMzM0aHBOT3BNd3FoRDAzcEc1?= =?utf-8?B?WVVhRXllMHFnS0lFRmJDcHZJb3dPL2U3ajVuZmFoc043V3hiY09UcWFaRjE1?= =?utf-8?B?MHNnY2F4YWFNcDd6aGdqL2RPSU9aN1BFVXJ2TDhVOWVQb2RLeVhUNjdpcDJl?= =?utf-8?B?VmlWWWw3Y09TNVdZVWtJWEUvdTJhMSt3M0NnT0FFbkZEL2xxWE1rUVg1blZY?= =?utf-8?B?SXZjdDR6Wi9xSW9TczZGTXZsVG1zWWtDeGQ5YTVlNnUxRFMxbTNJNzZGb2xN?= =?utf-8?B?bUowdk1XR2RxUVNZdS8vNlRUOWVUQU1TSUI1OXo0azVmeUJoRUkwYVI2TVRG?= =?utf-8?B?dHcwNlBZd09RUjVzSmhITHdmYUtLZ3pwSHVaWFpZYzkxbHRqdUZHQjJ4R2hp?= =?utf-8?B?b2JETVp0Tkl5T1FwTDhJUUtlazZvMytPcUdhazRMQ25nSUVZVkFra3dreEcv?= =?utf-8?B?YVVxYTZ5a1pUdFZUdGhZdHhMZUZUSS9rb0UvNVlwQTl0ZjVheFdOR1ZIZlAx?= =?utf-8?B?Y1ZUWmJOMFFLWStGaTN6RHlQeVNlRVIwVC91UmsrRFgzTlV0QlB5V2hRZTk3?= =?utf-8?B?bUxBQWNUK0xQMXV5VTJtT0NONmY4WCtSWDFyVlRTQnVGOXh4Mi91V3gwTXNt?= =?utf-8?B?TXQwYTBqU1crTXZCenFxbmUrb2RSdFBmTVh2eXJLWHQ5RDJxRE9nU0swZ0xF?= =?utf-8?B?MHNwWE9jSlZWc3UvWGIvdndMWnlRS2xNbzRlR3JaWkxXRTN1ZUMrYXdmVE8x?= =?utf-8?B?T2ROb0I0NzE5SnJJZ1ZLWlhTb3Z6djRvRjVOY3ZEK3hFL3ZOcXNBb3UrcVA4?= =?utf-8?B?ZlNsV3B0Rk4yZGhlb21Nam9YeVVGUDk0UDRsMUNtdHJaMy8zZjI1Zz09?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24a909de-51ed-4758-8808-08deaca478c7 X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 01:52:33.6296 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: i004cj7QtvCQlwAu2MayqGKu05jmZeuj9M1KB3XfUKRn99GbN6AZx/Ch+SbbPahYMOKSQ5d/N1O/OsK+8wRVzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB9903 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~public-inbox=simark.ca@sourceware.org On 5/7/26 4:17 PM, Lancelot SIX wrote: > On Tue, Dec 09, 2025 at 02:32:08PM -0500, Simon Marchi wrote: >> Make the management of the cached fds automatic. >> >> Change rocm_solib_fd_cache::open to return a cached_fd, an RAII type >> that calls rocm_solib_fd_cache::close on destruction. cached_fd holds >> the actual fd and a reference to the cache it comes from. >> >> Change rocm_code_object_stream_file to hold a cached_fd and remove the >> explicit destructor. >> >> This is not essential, I just thought it would be nice. >> >> Change-Id: I2529ac1caebbe6b7e6e60d228a403064f6f38d06 >> --- >> gdb/solib-rocm.c | 91 ++++++++++++++++++++++++++++++------------------ >> 1 file changed, 58 insertions(+), 33 deletions(-) >> >> diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c >> index bde34bafd8b1..5560a6035184 100644 >> --- a/gdb/solib-rocm.c >> +++ b/gdb/solib-rocm.c >> @@ -39,22 +39,58 @@ struct rocm_solib_fd_cache >> explicit rocm_solib_fd_cache (inferior *inf) : m_inferior (inf) {} >> DISABLE_COPY_AND_ASSIGN (rocm_solib_fd_cache); >> >> + /* The open method returns an object of this type. >> + >> + On destruction, automatically call close to indicate the caller no longer >> + uses the fd. */ >> + struct cached_fd >> + { >> + cached_fd (int fd, rocm_solib_fd_cache &cache) >> + : fd (fd), >> + cache (cache) >> + { >> + } >> + >> + cached_fd (cached_fd &&other) >> + : fd (other.fd), >> + cache (other.cache) >> + { >> + other.fd = -1; >> + } >> + >> + ~cached_fd () >> + { >> + if (fd == -1) >> + return; >> + >> + fileio_error target_errno; >> + if (cache.close (fd, &target_errno) != 0) >> + warning (_("Failed to close solib: %s"), >> + strerror (fileio_error_to_host (target_errno))); >> + } >> + >> + DISABLE_COPY_AND_ASSIGN (cached_fd); >> + >> + int fd; > > Given some changes since this patch was sent, this is now a target_fd. Ok, I will rename the type to cached_target_fd. > >> + rocm_solib_fd_cache &cache; > > the cache field is never accessed outside of the class, there is no need > to have it public. Ok, while at it I made the fd field private too and added a getter. > I expect quite a few conflicts when rebasing this patch, nevertheless > the direction so far works for me. Not too bad, because the fd didn't change meaning, it juste changed to a stricter type. Simon