From patchwork Mon Nov 20 16:34:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24379 Received: (qmail 103740 invoked by alias); 20 Nov 2017 16:35:25 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 103693 invoked by uid 89); 20 Nov 2017 16:35:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KB_WAM_FROM_NAME_SINGLEWORD, SPF_PASS autolearn=ham version=3.3.2 spammy=messy X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 20 Nov 2017 16:35:18 +0000 Received: from ESESSHC023.ericsson.se (Unknown_Domain [153.88.183.87]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 1C.F3.09556.444031A5; Mon, 20 Nov 2017 17:35:16 +0100 (CET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.87) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 20 Nov 2017 17:35:15 +0100 Received: from elxacz23q12.ca.am.ericsson.se (192.75.88.130) by AMSPR07MB310.eurprd07.prod.outlook.com (2a01:111:e400:802f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.2; Mon, 20 Nov 2017 16:35:14 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 10/19] Remove usages of find_inferior calling not_stopped_callback Date: Mon, 20 Nov 2017 11:34:34 -0500 Message-ID: <1511195683-2055-11-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1511195683-2055-1-git-send-email-simon.marchi@ericsson.com> References: <1511195683-2055-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: CY4PR03CA0075.namprd03.prod.outlook.com (2603:10b6:910:4d::16) To AMSPR07MB310.eurprd07.prod.outlook.com (2a01:111:e400:802f::20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f25b634d-aefe-4ce3-53ab-08d53034ad6e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603258); SRVR:AMSPR07MB310; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 3:hNl7zTbOE3jXTvmw28FIV7Eo9M52CvpJ+qMRBfqdbqhSulIUSAucGBSYVsraeTqSE8B24/AWwWikz8aJmMbuL3qekQJtKBov2ZUcO6qhsnwhL8gNkhQx2/ccobeHDT30wejfrrIvVIpSyqeTq/YxuzlM3fVCKzP0pYrUJQs1iB8PXnwcOntgDDGgHWzaGYJQjSe3STZIT9g4Xypwj5vfVQRgnClrBpRzvsBdZP/4TLKPdNf3YpQflCxSan7yr3He; 25:gnXWmISoBOPzN4WwXbd6IOJzM5BPGnGDuIFgQIbVq4WyOgneNRvaHUzqEB5I6paBhgnki9rQk6yvfhmtAlHKer2oKjXpRhQXs+yVY0zP/nTlskPzKI1uVS6WeG17GQnjZ3O6BrfZzT6i/GbkAhtx0pC7xTmNeaGnS0ZfHvfttrqB+yIVMWHO0ZzvdtjFq7KhOC1isK7SE+MgpKPJaNNFRfAolvvyGk8URQv6S6nP4apafrz5UZkT40shypcAg+o61lxNrpMmIumXhHHqRQEwb/mV66MBbHKNw0V7slZBZrUohvIK4v5o20g8bwLlGgDgJZA1/JoKY/PqzKry6aWLuw==; 31:af9p+p4XDAjNeE88mCG3pOTjKvEVqICRdiddOJFm8lViUL+sJpGX50bKTcoMeBbIoZNUaKM/W+soS8DxqmgIvnXKL9te4MaFIWVaqeIZk0q11ri/a+taoRYkv2b0PEYKECYxtT7vYtwZlbAFjVoYgamNfnwwR1aoNiGeLFX1/yycktZEDyxfC2DK22ScciWcxq0xJYnaC3bMc4Xln41BM2/O11McHmUoVkdCV0NoJc4= X-MS-TrafficTypeDiagnostic: AMSPR07MB310: X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 20:97k0p+4qLHIwkKog9KPGe6tTGHAqzc7TlCzj+XT1sMdIr741IztLfjOrlAOlO/2mdJyKW9fJFMFgUc/pd6wMTw7z3qMPGUfjwV9FQPjDWROMggNHh7XdKcr18MOjQebrPttE7GGpJuAiB2UkZORuwxHqxXRW9vm9GET1jzxptxBJFLhT0k5grL0Tu4sscgKVkRuegElN/NqP5YZt5rohbg7mMJTXxzBbqsZsEDXfwTgtifyJI08/8/lOyNysJWgir0dxEUPbUFBRoXqt9hEUWdkI8f1Z6ADLBuPrckHuPyAqdRxaPPhH+mG+wRlc+TqUX0jo+hAoM81EvG5Csy0tWH9fx/6Zju/iH9x+HbQ3fDjheLRHk+vWmvxQAiu33NqXteEl61tjgWeEuHp/RuJi1elU6s5m0eHp7Gn2IJBSl+oSK2Nrtq+itwxW0VZSRUif7gnxr6Z58SJdr4H6yA78SZiX2Y8Aptk0n4UuJ0nmoICxrreAiE8/Q5ZPJ33RX1ZZ; 4:YX0nvc81KiJGad1mSum1gfC11XKG7E74EE7LAsLTlAWI9PBBx/Q+inJv550XadmfQzkEuiHu030e11UwWJCQ4du9Yu5IbIAZsUzF2dp9H3CuFkOQZmhO4jMBkwjKnML1gPSN1uPHU6BuztcfZl/csFS3I3CQifvxf+2/sXV1Nfi1WGrhevBbtoM+KigdX3yo3CXbf4ksxLbak68qZiKDCeQeAGYPF2TNmsEsJGyUhrbKNK8oHmqIwvj4HSr81e26GZAC2tzhXrbEnzTMGId8O6dTVPF1xMqnD9PhIWuxD+BJhTZ5gmMBZ2pnXO+FzRaR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(10201501046)(3231022)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AMSPR07MB310; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AMSPR07MB310; X-Forefront-PRVS: 04976078F0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(199003)(189002)(54534003)(3846002)(97736004)(66066001)(5003940100001)(33646002)(16526018)(50986999)(76176999)(6666003)(81156014)(305945005)(7736002)(81166006)(6512007)(5660300001)(316002)(6506006)(6486002)(16586007)(6916009)(2950100002)(101416001)(8676002)(2351001)(2906002)(105586002)(36756003)(47776003)(86362001)(50466002)(48376002)(50226002)(8936002)(106356001)(68736007)(2361001)(53936002)(478600001)(25786009)(6116002)(4326008)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:AMSPR07MB310; H:elxacz23q12.ca.am.ericsson.se; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AMSPR07MB310; 23:XSsr+AE3zzAfRp8HbQjg3nkLcA+pvF71hDq0RfIw40?= =?us-ascii?Q?vqLXDz5Zsu9F634tWectCFEcEJKt/FxuET8nwDBdkjs0sfr4XuLMuFNfBlO3?= =?us-ascii?Q?IX3MjpqC3aYxxqEoeA3eeKe3ppLtnJ++50WglmueIzrRLcjxsAPnLUAuE2Rj?= =?us-ascii?Q?JzBVoIZaxdlp/5EFCCzCZhrqgqevIw63jqby7/DjQDgQIw72oZFYwF2p8C9V?= =?us-ascii?Q?cb96yUodR505FA1DCE32z1UWVJtMvcQg4ELoXXdTpBdAMYw9Ao0N2GndrRUF?= =?us-ascii?Q?nQqNFpPxAaLY87GmwVnzR4te0oyjDEEFJTufKFPPYgGqgWdMjoKC0uuv6hm3?= =?us-ascii?Q?MdiLRZ9Ch7GOnjfQlalK8ehi14DfV8zhIqVDUxyomFT2BBcY/91JyHimfXbl?= =?us-ascii?Q?ysLdrLcO/BPyZeYbioE2vJpl3vYEwJd1QmhsabiI7IXm1NKTbLd76ojOin32?= =?us-ascii?Q?7EPbudLHd+kcBOdDPXodNqnDq80GfENyx2v9DRhoqwh0RbtDa+u6Tq5EwwDp?= =?us-ascii?Q?vsViPdmDh+JIKHDtHZvOLrraKOyjiiMZGfj0LSSB1uOmOHVd6or440f4YLDE?= =?us-ascii?Q?pKXAtCaN5VFSl/8xRaAg2x87rQshwV1MvCck5k1XnAZlydhpWnwSt9XkFLjg?= =?us-ascii?Q?fnngw9mU095H+LRNjHPYJNnPXq8tOQ4B5PO1aFD0Gny1ODwycAJMLj7BEEYS?= =?us-ascii?Q?Pw4MAO+y4wp++DQb2dlGUS047N73AhXeA3Cl2jUGjEQse9ZKf0Rgv9DdX5wd?= =?us-ascii?Q?aJH1VWZHijbnvBBrstr0cjASf85SCiR/UkYzsJRn+VM9NogZWi2WlXlUvUL1?= =?us-ascii?Q?RCnZRFiQZSQ7KhnB0mq2y1s1TgVRHzGpLqqnG7RzKAIP3SqZFzYSUqOHwOT4?= =?us-ascii?Q?0yOABc3aECjK8nvqM4qURIzwudjCbf2qBihqQnH4QBhQy4Py8mEsiF/14l4N?= =?us-ascii?Q?3JmHy9LdWl3jAn3t4DXaDOMov4Di84fXeYsuYVcjjiokZFyBrUcHZX0BJMbZ?= =?us-ascii?Q?bNvEak1++dz2K4HMXptVD5l8wRM9U1JWZilLWEMKFYgTOBV7R+M7t+l6x3Mo?= =?us-ascii?Q?ChHp57qSGPfYepd/1R6s60VTwqfVrQ4FEMGsgNvkTPvwl5belTMrDByKDx8A?= =?us-ascii?Q?tNq7jsLfoS/e4m+zSbnEwf90afh3d0?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 6:TacNifBdQfcISJDW6oPTVEuT6mXO9jeH4zJBBU/9mmGpX6az7/WDVYKUF52AxaI4Rq/BCs030QPI+bOyffStwZEmXlit+XncbNIffbHY0sYjxSOOmhYEycpMk2m3dZW+OhhAqybcqHUM3h5/0HSguTt8fUji5SYNn0OySHyYBQ28t6Qvwf67UBsu+39Wch0oIeDJ/7NwRNxIuBJd/I7g2Vb3DWMRpcMKldiNrkuhW4JG5xP23AxlG1eCSR16cJZYfeGp7Py7rGGIUNjfJlx/0IED2DE2mlPX8yyL4J3BNzYVq6XbRCIqMtnkmP3pQvMeYicqXn+7XFXNFbRPTUHPpCpNoYzVtKlfea/oB+w1S8I=; 5:tuAhx2K6Nwqc/6PawpEIRyAs5EkNj4qv8SYkW4oV3TPRmvFStYPRh9oULYo6FM719XkvtvIxR0fNOzkjrwoY9A24VEGfDQKAmP0o57VHqJpX6j+ENoudtZ6FUcJhyI/8l46Fqfyz967YbGokNiORaqgymn0K7+mSpZuSnxHk/hg=; 24:kkQB4nAWMIAsm5IWuAl9P5wXSeyyr7qHpkobS2EIQ34KqD7aJXxBUki3Sr1Jl3Wp3JY7LNGT+mDTktczEka8FsrWmjQpZA/SSAsLNJFiFD4=; 7:rUCkJE/TNnH91GQN39MnOTH3e/rrZs2g7MtnZbEzmcHv80W63MqSBa2g05NCjzNYJUZkzkpchWsKMwE2iqWz/8ZCS5T2semqfF1Ai6VlZEUrB8MzWzlqSuTlM2fUl06mxOQMo2Lt8ZJ+9Ua+usFGnxvTkAy3+rLFT5xHhNevmUKdSHMHBu26kd2qu8q/RL6OJxSHFDtffNU0vdOvFdeUeeIqhZBa/I7/WyhZ+0lAj5RQntjApxm/eDBxhOZBRFh9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2017 16:35:14.0945 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f25b634d-aefe-4ce3-53ab-08d53034ad6e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB310 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes From: Simon Marchi Replace with find_thread. Writing a lambda inline in directly in the if conditions would be a bit messy, so I chose to assign them to variables instead. gdb/gdbserver/ChangeLog: * linux-low.c (not_stopped_callback): Return bool, take filter argument directly. (linux_wait_for_event_filtered): Use find_thread. (linux_wait_1): Likewise. --- gdb/gdbserver/linux-low.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 08f7f90..85d5572 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1919,23 +1919,18 @@ check_zombie_leaders (void) }); } -/* Callback for `find_inferior'. Returns the first LWP that is not - stopped. ARG is a PTID filter. */ +/* Callback for `find_thread'. Returns the first LWP that is not + stopped. */ -static int -not_stopped_callback (thread_info *thread, void *arg) +static bool +not_stopped_callback (thread_info *thread, ptid_t filter) { - struct lwp_info *lwp; - ptid_t filter = *(ptid_t *) arg; - - if (!ptid_match (ptid_of (thread), filter)) - return 0; + if (!thread->id.matches (filter)) + return false; - lwp = get_thread_lwp (thread); - if (!lwp->stopped) - return 1; + lwp_info *lwp = get_thread_lwp (thread); - return 0; + return !lwp->stopped; } /* Increment LWP's suspend count. */ @@ -2762,6 +2757,11 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid, until all other threads in the thread group are. */ check_zombie_leaders (); + auto not_stopped = [&] (thread_info *thread) + { + return not_stopped_callback (thread, wait_ptid); + }; + /* If there are no resumed children left in the set of LWPs we want to wait for, bail. We can't just block in waitpid/sigsuspend, because lwps might have been left stopped @@ -2769,9 +2769,7 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid, their status to change (which would only happen if we resumed them). Even if WNOHANG is set, this return code is preferred over 0 (below), as it is more detailed. */ - if ((find_inferior (&all_threads, - not_stopped_callback, - &wait_ptid) == NULL)) + if (find_thread (not_stopped) == NULL) { if (debug_threads) debug_printf ("LLW: exit (no unwaited-for LWP)\n"); @@ -3164,12 +3162,15 @@ linux_wait_1 (ptid_t ptid, return status_pending_p_callback (thread, minus_one_ptid); }; + auto not_stopped = [&] (thread_info *thread) + { + return not_stopped_callback (thread, minus_one_ptid); + }; + /* Find a resumed LWP, if any. */ if (find_thread (status_pending_p_any) != NULL) any_resumed = 1; - else if ((find_inferior (&all_threads, - not_stopped_callback, - &minus_one_ptid) != NULL)) + else if (find_thread (not_stopped) != NULL) any_resumed = 1; else any_resumed = 0;