From patchwork Mon Nov 20 16:34:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24377 Received: (qmail 103336 invoked by alias); 20 Nov 2017 16:35:22 -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 103279 invoked by uid 89); 20 Nov 2017 16:35:22 -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:1564 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:20 +0000 Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 40.0F.08439.F34031A5; Mon, 20 Nov 2017 17:35:11 +0100 (CET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.63) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 20 Nov 2017 17:35:10 +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:09 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 06/19] Remove usage of find_inferior in last_thread_of_process_p Date: Mon, 20 Nov 2017 11:34:30 -0500 Message-ID: <1511195683-2055-7-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: 66f78ace-8751-4927-0068-08d53034aa71 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:2QeeVvVWQy6PsJvWlPyw7PIyj8g8Nthk1et2X2jeQDaBbytRiAnvUVFEFH5/ts11knyfV7sQCGmZ/V7yP6c1dBPUEHsQYQRQ6Wo7zhsFBnmhX1L221lSPG/7fZFYazs/UjD5rdqZM70VmgD/uYqlkK07uJiYxAC1u2c9SWFFkVXCcz87KuXTFzovnS9pHk6jJiJp2KMe04blPoN+Wf7tVr9rpa08RxVZw4e9d6w4lBEymh8LaQ3FWL4YJWsR5CDY; 25:7YEY8H/kan7bKpQcPhuvQs9Kx4hDjJgOPcc1rbbiAsguLiC/lQ2Co7XfNjXyI7O+CtPqISdmrsIo7qcHIKy1yLy6E5UEpm3feWfd1qwsw/q6Py1eDa7Pln3hllNhAf5hdV9rQFQetmO7YdOFd1dnW3KiGbHRnZzZBiHF+C34DUwGYsgd5wHBy1kP/gNI6c0xeSlySE8nCr4DHvUCVzFRrYsLFRXf2RKlGkmLaYgjqOXzrqfJ1phqz8tUufjnDG5vmCvBL692hAH/MUWgjytniGeMkcCBZaICzmuVsGAQ6x5l/BBI0XeZigjP/pyJChMpYE0S0UdAUseubyihqK/sNg==; 31:AvwhJynPLYMKZNHGq2PHBkYSqzfebSOIK0fSdCC2QUzTnEmC3ddvxOrvlLcZd+QOiDTxm1vZeRoGtGyVg4ykO6bDrr6RAYmSgzQUHUalkZwqAjiG5cQwfT9NZUzQ6W7DTxhteVNJsan2V5iNXvPjEv6A6nydVq9cPhQvOLJ7Jwn1DzD8ZXFJ08KDVdTaS0lj6k7KCpk9c34luvl1aZx0KVaLChct8unjbCVK3RLtIxw= X-MS-TrafficTypeDiagnostic: AMSPR07MB310: X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 20:VTaWcWzna9lGtjr3bvXoNdjxHfhjCy2phAYM6PJnk1yZjpw31bRYVtqsZJjwqU2jKUdM+3f+nRTvrglwNrNfadr6k/xb5nS+uDTQe4nVx8OmIIvzC93xLpe16Q5+GTbjFHlDxVDtjD7k+/jGbZlKePlJVL7DwU0CgljtMpe1scXLWPUUJ4Js8ytD0mYak5NJlu8moSVV4lnm3MydjRhFrtsivmX6bRVAfrV+eADDyOAyMckUqVEGAYyKTRGxrIkRPBzwwTPTH3eajV1cqQgLlqA+hIaQc6LFAFmE2jSs0JKlp4R48KmSNMRiszL7U1qbj8f1r5PAkOqdyCS0UQAz5l2qbDMu8tJaYaeBAHdmne7yJGpAnovhUTnbEBq+ceAI4rn8lieYxBClixgGN0UkgGnxJMcCTq7eYLePIXLVsxkTDEKFWXufwjrQiEP5w5C+dJXcQ0IYVslR46vyu2SBJHx5xoxUm/F/b3I5MS4u5+s+KPA6Zxutc12gtlomzYDz; 4:XLXwkxEnqcA2q15hW6tG4EpaX+bjbadVKMD/7SLQlCOJmY6uWpipwP/aSE72wRm+9KShFA8YwAAiCdk1g3DwR0c/kEcg7MOkEkYGQ/RECUIFnOgh5I8iMsgq2JnrdfCrURDgcvK/qRDrI/oVC1rNXQQXb1dSfk5+8h0A5Bc38/wy38anSFEqZ/8eQJIezDFauG+J3lV3Ub9OEC7azP59XzoLr2dUr7tUwJjv+2h3xpWEqfH9DnM2H/vKi0v7Dgs2lrJ+Y8+CubJlG4ftb3/4wtI501QcPky4faTKHPoKzOBlYx9kl/tbqSGNO7GAQlXe 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)(5890100001); 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:7g2YBC4OhQmwgqDvkI+T2g9hi87uELwCnS9HWBAdWw?= =?us-ascii?Q?PqRqktx2oodpsqm1jp8tm2OH1Zj4D6aK8J5nJ5twzmgpK4O/uGhbbIuuKZXM?= =?us-ascii?Q?IIl31tSZna0Sn0QsaEXrCQIldSxDtpNR4ZgBGtGNhilRGH4nBrmHnWJGnJES?= =?us-ascii?Q?83EbXoEHd6DQ7sig4k10PwH9Z5y86Plw1dy/psibout/Pa3hOiTDiZeiFvR0?= =?us-ascii?Q?tobiafTRr5ZwEqP+B+vRp25R1Y+jrD+ZAl+2GHNQr8yin5VBcn22lDLkQtFD?= =?us-ascii?Q?GN4Apw9LPw31j3Izb2bB6jv8pqg/1zm2zml7NYCbRDqLVQR6HcokC5IFaZ2a?= =?us-ascii?Q?qZmt5r01zeBR3WBumheZj8avaSnIwqBxUX/c2yN/n64c05T9KrVXuQxO5CKi?= =?us-ascii?Q?tL0VFP3d9XyfAXLqZF+SAezO9uRXGofulLq22SCM/Ivjd0ohkk5JyuOHKxUV?= =?us-ascii?Q?HaZwMAhohnEex0ADIXwL6EX1Mab2QOJWcK/kb03Zy99y7Y97dhKyfmIRz668?= =?us-ascii?Q?xE2bQwWSyuk1iNwK0YTDucscWO+YRTwLSs+32ERXsr+e5UTv2TrPDEXdRJ8M?= =?us-ascii?Q?dTK79SmZWzUz1ov/7IS4VgOMkR7CjRdTtFf47dUPiQYiT9COhGBaIuBRXgAj?= =?us-ascii?Q?Yg0jKqe4aL4Q5XzBOBPnw6/mTowqmlDZd3bE072iPV0AqhibZnoaxWchUW51?= =?us-ascii?Q?64UKUtAxPSm488YtR3Ec8pfXJXANI55LSiUMaSbjOGxunLo84n+usomCrAyO?= =?us-ascii?Q?ObTnTBNmBrQf8ukVz4qcJaXUyspxYLq45ZXptpIJVDX47Nvw2ClRr9ZZ/zwh?= =?us-ascii?Q?usthKRQkS7SK1j+9/OTaBxBLOQplABV2wGY3bKIHD4OCcZvEN7yMznCUn616?= =?us-ascii?Q?vbZovQpMlYFFJtJbtj+8M5PYBcN2VCMe+NkDT05ZVeTacPmg1TY9C/WOdte8?= =?us-ascii?Q?evEhyuTgMvwutD5LJPfOO+iLQHcvT4e892qWbZaDNokZYClVMRdonVdavS0H?= =?us-ascii?Q?eATZpil3AeLYNpLiXLfURikfRup1Hr9s2AafoVF9KhdmlpCIP6xJYU90tBgA?= =?us-ascii?Q?qgTEn/Skqev5TSqaA45w8nze+oljdGjghLiM40N7ED+/VDYR1ouYz7rvfg80?= =?us-ascii?Q?DeYisgkBH3Wq+8mdY6/Ud3pPDw8FLkS5iqan3Tedk6oOZhFBrqT1UhQcE/dG?= =?us-ascii?Q?gujPdUm8BhA3s=3D?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB310; 6:08Uulw1JDOxA7T0atBKuOnD+6I9KP8A5GNwobvvm5mrQhgI1hC51tavQEWFNi/KjEin0OeZ5YymztD9QeJzFLD8Ogt2Q+nZyIg/Dq2ukSfmOZQOm/kvxfm3iDmgss/sbEQODnx8/wIipdlP1XxncW1HQS3ZGKTppBur3LqCIvXUBySMPF1mG+zs/XQKhEIBCFTsKWagmbyHbsljRvc8uSyy76gy0h8BmoORyg2hIFWVf2Ra7NlyEwWvS+IsYInr2zbaHgorWXRBwtLX3/jvF37Z1D+oAIZNOcxzxc7i4EkLRo/Uuhi/6b9RdOmWgMT0W3zF5tawovDQRXqPGfZlTYbTmpZ6RTaFh/EZQBJY2c58=; 5:8eoWmS7jC0t39LssQK/cUojKRmhJPVLipAh2fnh98GYla1CjDSeKQ07xxPspFtkg0yLvN/oRKMSz7fIZCK06YVyAimFGvVXMNtXX9BsQWhgFQ/4AsjuwHc5YgZN8e3Qjq3KjAAkUB9zex4yXqgLSqLXSKOntjJ1sWAmLqDnyBsY=; 24:Jg8UTMtBAmecmFdEXuxfA/S17Sh71Hpfp5m+2SS63vASvM9YWYVEUbcmD3LcxFK6BEq/oQd5T8OH/dN1z6DEDUwBJ20qFrDcCQOYnsR7OVE=; 7:KM3J8vBNLxf7kZbeVLX/trzLzcCRnovyOnU+LErszvxdBTTblanIUZqJm4S+i9FN+FjCz1jRK28bEDOCzIumYR8ILIT6/9N7eGEuRqFtyu6mzPDuE6TsPB4m/3h710L6B2MPmOIM6p2pheDVTgIeYZsf/imHMnLxhPP+LyeQ8yPMsopyNq8eVjAoiDsvDdAtGaMEg/m0kilB/wMlH5os6OvD+zlPgT/i9z0FH1Sn2dXAneT3Gdw+cwoZmHlkkbiH SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2017 16:35:09.0633 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 66f78ace-8751-4927-0068-08d53034aa71 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 it with find_thread. I also modified the code a bit to use a lambda and a boolean. gdb/gdbserver/ChangeLog: * linux-low.c (struct counter): Remove. (second_thread_of_pid_p): Remove. (last_thread_of_process_p): Use find_thread. --- gdb/gdbserver/linux-low.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 60f049d..333d87d 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1240,33 +1240,27 @@ linux_attach (unsigned long pid) return 0; } -struct counter -{ - int pid; - int count; -}; - static int -second_thread_of_pid_p (thread_info *thread, void *args) +last_thread_of_process_p (int pid) { - struct counter *counter = (struct counter *) args; + bool seen_one = false; - if (thread->id.pid () == counter->pid) + thread_info *thread = find_thread (pid, [&] (thread_info *thread) { - if (++counter->count > 1) - return 1; - } - - return 0; -} - -static int -last_thread_of_process_p (int pid) -{ - struct counter counter = { pid , 0 }; + if (!seen_one) + { + /* This is the first thread of this process we see. */ + seen_one = true; + return false; + } + else + { + /* This is the second thread of this process we see. */ + return true; + } + }); - return (find_inferior (&all_threads, - second_thread_of_pid_p, &counter) == NULL); + return thread == NULL; } /* Kill LWP. */