From patchwork Mon Nov 20 16:34:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24376 Received: (qmail 103013 invoked by alias); 20 Nov 2017 16:35:20 -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 102959 invoked by uid 89); 20 Nov 2017 16:35:20 -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=Hx-languages-length:4211 X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 20 Nov 2017 16:35:18 +0000 Received: from ESESSHC013.ericsson.se (Unknown_Domain [153.88.183.57]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 4E.FE.08439.D34031A5; Mon, 20 Nov 2017 17:35:10 +0100 (CET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.57) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 20 Nov 2017 17:35:09 +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:07 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 05/19] Remove find_inferior_in_random Date: Mon, 20 Nov 2017 11:34:29 -0500 Message-ID: <1511195683-2055-6-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: 9a7201e0-0a6f-42ff-08e0-08d53034a9b7 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:SNfl3iGM/2l8N1Bja+zbcftXnqPdhjghm9bHpBKiO2N32bppiqIiB/lEDUlRD8nM5yeQn43X6Ze0Ylh3tdp1gC6Aj47GsTJPqmGDRP7VS+jd+N+sxyCGfO1rWc9Ve23WPS/dQ7GV7q4DVJ1DWpgutD1ITVwOifwrcK72EZlLTylDzUNAaX4YoGLo7hWJxllCzJGMH7cRrOJTTQuuKawxySz3WMWvGzZ9YWU5mLRrqJI+nb13NjMGubLBG+fqSpxg; 25:sJWdh2XoZwwelYfu7nWHHLhRVz56UzH1qAye0WPRSA1107wB5q9hekAWNemFdUmrsCkZTqRhBaIjfJGmzjgwLmDKMgf9gziAeSlFPFdiwblbhSZuKBhG3g1B4OG+e3mOS5OnJzQxuvsD4/AkFjd9/XAhMcRt6ADOXk+vUnhBwn782Qt14FIjbZ9sGUeg+De61qNnvQHVWxmDNV3Pi5nZwF5/OBVJ/jQfAjULtgp1hx5//0JIwnz3V9WnpF/TUU936rtGH2EO4icKVEoI5kt8ZQonld2cHtHq4/MprBn0Aw9suz/ypsuXRts1G46uvAoZi2dF0kdCpR2NBMUBsFDCiw==; 31:d4uNE7OQNhBVk03mTaOAi9qaxqwsYmdBslXihGQY1vp+lCwpW39xaOJzCJd8IDFEJuBh0t/PUqqJfD2mtsZMw+PP2FovyW6VlgGubjD8DK3VY71jGCI89uCY5yjFWEVrF7Uaz2M8iIDDqoXfUtK+u1pFL6Lf7fTyM77xNB8ZiuTlCZyCvr4lavcdrQOwouWcPiQ+OlTPcpypidrJ4Ac/UGaczfKnvApSj4Nzfosri84= X-MS-TrafficTypeDiagnostic: AMSPR07MB310: X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 20:79G7ECS+H4WrEm8QON5MhGFjnbHPqHylXskPhqwr6bJuK4wPBLxKcO1jUwjkZC1QK+541ZX9jtpxPcD2FJomF++wGmKYaZQU7xq7+rNUS2/bD+4k/P0dsWh5V1hIMS8o92hsB8o20RIde3dLd+165MjWO/Gr1l5aHrAR3lvLN25xzgdcPNSORNaBQnM0OtBHYOmQrRkMe9QNBivTSNRSoXfb5WWx7iltDZSeD+IDgAtI2QhyzrT8ct4mmJmTcE/EKO2HdPN+lKy4sq9o3J0OCtvgNWBujj9BpAF3EL7kRTgFc9DubAuNAbkZfvABmGePYFsxe7SKaAIbpEoxqJq03h1NETpOoBqIg8GpHasai7Upx0lKOb1mvUVRshVYbTP8mZ4A4xWw9+iVGYRXzNqgw3ksGuFlpVR9F5RYW3qW08Co8tE3rdfgdNosvOI3Fb7sXOg5C6n007/5CpsDZnLgomzM1XRhXp+4XyFDvOEaHBlEOIeVQPcUWW17tL6+9k9l; 4:uRe0+NnQeAYKG4c6E8/QyEfql38bw3z+kNvC5JoAsIf2RrBdgvHNE65etQug1XF1tJHBR+uDRZ6bB93nN48j8wFk6e5Q9TusrqrFAd8rTzdj24gCugl/1ltUdJWGP3XlQqw1Ral6Xxu+RHs5tMN6dRs3qGxpbElJ2GflEtAczzFApNN6PR8EsuMWktt+0ucGebE/pQRJroqOD4luurK4judw4cnCLv2leiQP1jyhMx9zJMBiEpLRhieleVOcOMeJjgn/jAttNcD+Dkwu/loaoJ6blyqZVhkEoHljZNfC6nwlNqr9xdmfCnU1OV0LYplN 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:SDCA4oqc/Jq8Ic76+DI21ue63g7YNM0qVv2eyEJr9q?= =?us-ascii?Q?6dCo7HniPOHYDFUKhAtK0F+VHjhCfq2eboH5gPv/ilfIW0cxbIy0Qe2EwYur?= =?us-ascii?Q?PY+8LIrphkZbAZFdXu9KN+wuYwQUzNYuQej1gCIPO1G2bRXI9OrF+kh2awAC?= =?us-ascii?Q?qzO6ZD3bChfgRCLpCEEWcrhAUmeRxtCrYfiUg+vxYZQkRJHEdrHDd8VN1uWm?= =?us-ascii?Q?CD4rgvI7BIk7dntzJ63nij6QxujHSND1RySGKEplEQgqU2wzB04vpef4KpOY?= =?us-ascii?Q?YJeH971HEYKz2Fsq1I1XNukY0XhofTzZuT1O5VcOixHY+AcH/PzbEJZsiJ5d?= =?us-ascii?Q?//TKV6PEd/0KssK3LzHTvY8tzDbx7IuAif80X789qf5/jTquu3ynUDkGPTuC?= =?us-ascii?Q?7fzG5KSV/4elIKCUGIRWe0DIS0Hb7uyuytvjdKNA/Xb4YfoxpXTTQuGkZ8RH?= =?us-ascii?Q?BjXdR511cC4Dw8pP5QG5ToqIv5zde0YEPnVeDc1t0ImDidF9Ir5TIN4bO8Qt?= =?us-ascii?Q?f36L4L4Hi0MIt5KF3ZOyH1C2N5jziIHhBNXak+QWFRU9zcWBSNc/V0kk/6vk?= =?us-ascii?Q?SbO9cZet6gRw9ldgfsDbcz0kls7nDEwcJ+kWUUqZ2SzNJWsj9pDsjBEAHXXP?= =?us-ascii?Q?t1Ho6PXAVX2Nh8kLIGrN7avn70R9vmXkmF3QoSZpL0PodJwhcDv1uLP408AM?= =?us-ascii?Q?Lpv2L4ZykRQkyPP6wCTfK/2kn4noHDZX7UyUEkU0UvxayM0nDe3/JDGHjKa6?= =?us-ascii?Q?RQuKrdgW89stwW2QfGX4QIzT65pb2VYcdPUHoQTS709J0PSBOIjeIBjdfKra?= =?us-ascii?Q?pGMCpBWi0GZX50aaePwkEsGAZJOmgh04LiEFmlnfHxfwCOKwQyKPEu1z5EMi?= =?us-ascii?Q?9k0u37MCKR0hG7iCBOVe6b5wk3tPTO2HkKe6PMaZEkCRCSnQQXeHYlWhDYpe?= =?us-ascii?Q?0h9bcNoKGVlSTFbYAbkfTZXNxcwHE+2ByTConlw8X8HVurSMfQ3kdq7aEznP?= =?us-ascii?Q?fxboYXsHQSltGcIeSVdthRezCozy03fxoTHy+emBXyqyHAoCS44rxQYeUWf/?= =?us-ascii?Q?+4y7WYncvU4ASmphK8iKliWPae29YV9lkzR/42L4IvwKeB+mbeNQ1tJa/d1O?= =?us-ascii?Q?b9CuneYekgil3P4fFgFyHpbLgBCJAr?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 6:7Dx9M8UyvxwikiHwXVIrd+wzQsK7EP040hc1zOWkPLYsmljqVqgLNr6BSnUSsUBtcB5tOHH9367Lsor3xG4obWmxoUBLLfsYPSKX1FvubvnHHw/WaEEVxiRrsXVqSs8WEsZBwMrzVNWxnmzagoMNyMuaUmw3a8wNS9UP0NlCyPw5R7XahSuodmZzSyqKBJnM1j64LkWSsep7ofmneDmfMccXCU7aJqfyoXZ9A/mVZC9387I6fTnWTW1zf24NZIckkdPFanGbiipEOu11qmd3zEk+X+thiruDvzMyqH6jUnBJirSj1am1XhQo8NUai/bppHvOLo10tEyZ/M+V+7to2czHB1NZYnwsR0PxflGTv/o=; 5:QLRn+wLtcNAq+Goub3ghEB7KyVdk+KKq8D5s1GlEaS5mih9r5lNBDTNl5xlpZ+uufYUwKnEODsziFZDp09KQnXoNay7/VFKJE8QAniEF751/dHdX/zz+fey35iUxiMUPe5GaM9g+/BFC2B+2ccJKBTcG+KGQhWtn3k9oGAEmbBw=; 24:dXBXkuMRRQm6RewGftUNi6PZ/stBjZyfGDA40DTOlt6Xw0tZ53VrODSEa6rqiGg61BzNB4/lHl7qTnR+Fz55Svvko39d7GEEmTyKT9+ZmSM=; 7:5fZU80eI4Fh5iJTeeFCJwV52JGVS/Cuuy9IalecQDlTNbwL1xK1otEFROjCXd61RP8ozim30xlTHt0snEs6lBm+vlnyewJyi6D/tt3PkCfbSupPbStJNEU8Jn/xdFwu/PErriQ6kotrTd9nKP+N9ryTCm10VGtfTc85khmkR3t6Pztcc4JrmmeW2SI+brKVwElPVO337SnrKJunemKAq/bP+jSsTJXOIADAEhK29nwPNOTAQyr4q5ElNV2gCoS4S SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2017 16:35:07.9539 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9a7201e0-0a6f-42ff-08e0-08d53034a9b7 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_in_random. gdb/gdbserver/ChangeLog: * inferiors.c (find_inferior_in_random): Remove. * inferiors.h (find_inferior_in_random): Remove. * linux-low.c (status_pending_p_callback): Return bool, accept parameter ptid directly. (linux_wait_for_event_filtered): Use find_thread_in_random. (linux_wait_1): Likewise. --- gdb/gdbserver/inferiors.c | 12 ------------ gdb/gdbserver/inferiors.h | 3 --- gdb/gdbserver/linux-low.c | 34 ++++++++++++++++++++-------------- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c index be3f3ef..053f675 100644 --- a/gdb/gdbserver/inferiors.c +++ b/gdb/gdbserver/inferiors.c @@ -42,18 +42,6 @@ find_inferior (std::list *thread_list, }); } -thread_info * -find_inferior_in_random (std::list *thread_list, - int (*func) (thread_info *, void *), - void *arg) -{ - gdb_assert (thread_list == &all_threads); - - return find_thread_in_random ([&] (thread_info *thread) { - return func (thread, arg); - }); -} - void for_each_inferior (std::list *thread_list, void (*action) (thread_info *)) diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h index a8a374e..44644c2 100644 --- a/gdb/gdbserver/inferiors.h +++ b/gdb/gdbserver/inferiors.h @@ -142,9 +142,6 @@ void clear_inferiors (void); thread_info *find_inferior (std::list *thread_list, int (*func) (thread_info *, void *), void *arg); -thread_info *find_inferior_in_random (std::list *thread_list, - int (*func) (thread_info *, void *), - void *arg); void for_each_inferior (std::list *thread_list, void (*action) (thread_info *)); void for_each_inferior_with_data (std::list *thread_list, diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 274263a..60f049d 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1806,16 +1806,15 @@ lwp_resumed (struct lwp_info *lwp) return 0; } -/* Return 1 if this lwp has an interesting status pending. */ -static int -status_pending_p_callback (thread_info *thread, void *arg) +/* Return true if this lwp has an interesting status pending. */ +static bool +status_pending_p_callback (thread_info *thread, ptid_t ptid) { struct lwp_info *lp = get_thread_lwp (thread); - ptid_t ptid = * (ptid_t *) arg; /* Check if we're only interested in events from a specific process or a specific LWP. */ - if (!ptid_match (ptid_of (thread), ptid)) + if (!thread->id.matches (ptid)) return 0; if (!lwp_resumed (lp)) @@ -2666,9 +2665,11 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid, if (ptid_equal (filter_ptid, minus_one_ptid) || ptid_is_pid (filter_ptid)) { - event_thread = (struct thread_info *) - find_inferior_in_random (&all_threads, status_pending_p_callback, - &filter_ptid); + event_thread = find_thread_in_random ([&] (thread_info *thread) + { + return status_pending_p_callback (thread, filter_ptid); + }); + if (event_thread != NULL) event_child = get_thread_lwp (event_thread); if (debug_threads && event_thread) @@ -2779,9 +2780,11 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid, /* ... and find an LWP with a status to report to the core, if any. */ - event_thread = (struct thread_info *) - find_inferior_in_random (&all_threads, status_pending_p_callback, - &filter_ptid); + event_thread = find_thread_in_random ([&] (thread_info *thread) + { + return status_pending_p_callback (thread, filter_ptid); + }); + if (event_thread != NULL) { event_child = get_thread_lwp (event_thread); @@ -3192,10 +3195,13 @@ linux_wait_1 (ptid_t ptid, in_step_range = 0; ourstatus->kind = TARGET_WAITKIND_IGNORE; + auto status_pending_p_any = [&] (thread_info *thread) + { + return status_pending_p_callback (thread, minus_one_ptid); + }; + /* Find a resumed LWP, if any. */ - if (find_inferior (&all_threads, - status_pending_p_callback, - &minus_one_ptid) != NULL) + if (find_thread (status_pending_p_any) != NULL) any_resumed = 1; else if ((find_inferior (&all_threads, not_stopped_callback,