From patchwork Mon Jul 7 12:11:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dora, Sunil Kumar" X-Patchwork-Id: 115747 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 333903857C7A for ; Mon, 7 Jul 2025 12:14:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 333903857C7A X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-0064b401.pphosted.com (mx0b-0064b401.pphosted.com [205.220.178.238]) by sourceware.org (Postfix) with ESMTPS id 30BDF385800F for ; Mon, 7 Jul 2025 12:11:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 30BDF385800F Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=windriver.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=windriver.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 30BDF385800F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.178.238 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1751890314; cv=pass; b=OG7nvJPk5+/Kei0YefALbsx+0CrXqjPo+4mikB5JJ4xHRLncPQc6gCCjX4DMYUaX4woAMEkYCpF7rABVX2mg0DWtX76FLhPpgOxDrgczPEGEARQAkixi8dyQ9xkgCLOp2IQMuYc6cgXdcF7nUJH2IU0WEGfkVxayLRmwQI/kEJ8= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1751890314; c=relaxed/simple; bh=9MpEj39/jpp5H3e1wH7mlkbtGuZOC+R8DJxmNlzDOUs=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=kiH/IQMJ70vfOukRPsPLaQx1cpx65xkSCqo106nb8TEbOdS1B+AMMcMa2wjHigl9Wndgf4efzR00ydz1qg2ubU4jRc3wC5x/VaaGdvPa2YUJLqhhmmhXuyYGLcT/2v+TI7NqaBqWgwuLXQXD7YupJ63Uqc8EKIARQwL+K+7HAvU= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 30BDF385800F Received: from pps.filterd (m0250812.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 567BRlhk016411; Mon, 7 Jul 2025 12:11:48 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04on2052.outbound.protection.outlook.com [40.107.100.52]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 47pu19hkd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Jul 2025 12:11:47 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HXCOMws0TWcXV2luFmJApVRABtFtUahgKkZ2pa34htUys0D/3A5612ZW5RW8Wt/7117A09ZVDh/8NZwP4SJVE1VrTB7LN/NzwbTiA4wlCU//C7UjPCAERt4u4TTlAvUtIhvkARXkwz/DAoRgczdZ4g9R+U3VQltZSh/09gyigCBibzwOthyA6G2aqvCFNB1r0NiTiWCd/x7WMdd3hXKAxGx4T54s9tafO+mssw8O5F7CQCS4kuGzS/d3OLWb/FZsTGv5o34YuLDubfg3MvGzEMV9t5hKR/oflozANB9s/DaKf+9mSOdhbFn/2s34uUc/H4ESXJWdeC6H0e8dCC5yEw== 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=Cu64K+BGzFac6jEWGJBcCUS5m99UvpRt2891DHUY2mk=; b=CgO0bZOBErUM+pipBm0qwcnqwYxxBKzwwaLQ9UnjB52WPcwgSAdS8ACeXjF1324+vudigA125AXYAde0392FF3x/WOsQVbMmmQN7JhKmrTgJUWxiv2ksHFZxiXEUxyQfMXhm9dibDGLQjQ6o+MRPh1MkGdiEoJ86MscWeR7eAiO6Ox9FBke7ikShT8/jczdKjHHdE8Ch+DQtnNXLDcNUVyiC6gWWer8drqA+8e+N6/36rDsrG3Bs82xLTyIsmvWsx2Sg6n7dOTQmAZYl8JMm5Du0gvtdgdU26h/LV5+b1NjixTO8TXsdWk4K/Tv3YXRAI7DhBN837wcYa/UkEbur+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from DS0PR11MB7901.namprd11.prod.outlook.com (2603:10b6:8:f4::20) by PH0PR11MB5126.namprd11.prod.outlook.com (2603:10b6:510:3a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.24; Mon, 7 Jul 2025 12:11:46 +0000 Received: from DS0PR11MB7901.namprd11.prod.outlook.com ([fe80::9fa:eb3f:cf26:264d]) by DS0PR11MB7901.namprd11.prod.outlook.com ([fe80::9fa:eb3f:cf26:264d%4]) with mapi id 15.20.8901.023; Mon, 7 Jul 2025 12:11:45 +0000 From: sunilkumar.dora@windriver.com To: libc-alpha@sourceware.org Cc: carlos@redhat.com, SunilKumar.Dora@windriver.com, Sundeep.Kokkonda@windriver.com, fweimer@redhat.com, frankbarrus_sw@shaggy.cc, malteskarupke@fastmail.fm Subject: [PATCH 07/10] [2.37] nptl: Fix indentation Date: Mon, 7 Jul 2025 05:11:02 -0700 Message-ID: <20250707121105.2226766-8-sunilkumar.dora@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250707121105.2226766-1-sunilkumar.dora@windriver.com> References: <20250707121105.2226766-1-sunilkumar.dora@windriver.com> X-ClientProxiedBy: TYAPR01CA0135.jpnprd01.prod.outlook.com (2603:1096:404:2d::27) To DS0PR11MB7901.namprd11.prod.outlook.com (2603:10b6:8:f4::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7901:EE_|PH0PR11MB5126:EE_ X-MS-Office365-Filtering-Correlation-Id: 20ea526b-2267-4f11-bd80-08ddbd4f7144 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: lBAsLQgdbo8GdlRaReDTztQUaqoPg5mYJvzErtPdH0Lw5nmvuk1B1Q4rtv1w9IvCqE3DOscb5gu1c+359NJQq5kDalbpXBM0Q75tWo0lHKF9lxQZ9840wGJCeJRSdIE8TtxV+rQq+kHOo2P9vl2sobb8cob5Hse+YNpWNSvHuU+zbcuq3WpUq1NoRsTKnw1MZtNybBPEpynodBQPdZ+wZs4+Tz9YoQTn3uI/z8T8HJtV1XJKl7UKlEjgQfd2YAd1mDJd47kK9152Kt+sNEGm7vb1pA/rTM0qior/PeJ7KN8bA5kKBJ29BbDhm2kNbh6gI0U7Qy/0B/myQJFuC9WyK12S3w4H6SerrMqw9+94sma8G0yY7WvDUSPkWTktmrt4P6ZLy3+ZecnIRnm5BtfedFDc6s4yp/LyoUMr7Meph349lVh7QkkYLzRzOhsCltVPTREq1iKKargoa+DeHECBqWBiw1CfdlHacgDjNNtfIFuj0UvrCbNB4I4vS0ORM46i9/9VmbjdwAiNTDtgPykmZfUdTRCa7OeK2dNUj/WglcttDPow4Ua9o4duM9/0cYcL9giv8Kkxsnq4SchLvmcPKAd7IaJkoBc0glqpMmF+rJW9AXdrnp5UdF4YHWZY6Fu1Q0zViOtFF4fd9n8fLPI+4vmTD09v6W4nfwXl6fHx2kzJla4+rSV+lXST27ehUscTazgzSF2jnPpwc/wkg/4g8hUvtx75ZVI/2CKBveOhJDfhhcj44pEr2jycPSoVZfKShJKVEO3pLfENqQomhI9j1ogBjlJGe+5glR+sBL2tI1cu6Boz3WlfIBZKfnJF97UGyNmuMlfxFa2/I4uu6Zs74aWjSm4hXz/dOr+RAEOqN2v7G+5rw7/CAZCWHCeX3UMhLiqAMe3trEI8LFZPuXzOUheUcNCjmeu9D9gvyhlL6J3AOSHm1Tlw73YF3gwK3f5nN3Hm034wAa+RdHb5ppyxBVu4IZYYRJHK4gQHtyPPbRNW4LUrcoRqa2kmBxHLdS0wPzf/wEZVSqPQtucPQM1+pDWbBHYoJiHThmaAHcXnReiz12Vc6NJP4YsqERxs6bzebWLfqM80A8hdRE8Vzf5KFIAy0RO+DDdDXFR/WnWm6DHTcRlQijQ/VTHnFETBxHP2Q+FQ5dEXlnMaKe83+B14+M8mloqZMyZsqukE9L0htJePUAf9EtPhR710disJzP3TI3ZeUDiFy0/xrq46JS9XYJpb19UPy+fxGjWZ2dnitut3XEhAMfl+WiOAayPRjBgALtpIrRRNCu0RtOD26Wgj7gEnm4fpRFxY5Yvb/7Asc/UbWz/zWO9yK0WFvIFDnf9iykQsRpsOP2PR7lqoxzboHcUM9OUWEx47lMrbx/Y3gRq4DERb9LEV9xDpyYzW5Kko55Cpc+NCnYVFbQCAvWTdOeoZ53grWqOHYXmwGGg7E9eVVQBbK7stRYTdK6g/+cV4tkpUvfsjAYNFTLBQaI+U3g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7901.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JICUCWuVkvznqIlxYHZRcEdqwg787ATw+ZbnER8NtnRksb+EocdsRFZVwheIBvuG4/h/pHxotvN4UG7O2d8UGHZR3/ocG7LWZelgCePDIgzEArBA5pbBpRFFeCPlXyAcrHNHWW3DM1xvsK6f5y/pSnR6wDunbtMDFq2Cm9F6+3xp/JU6pajuZsn3Z8EGqg6Oakcrzml23jTCA7V6ClxtFTf80XzDYE7DjyUELJhKYwaLHyAGBstO8Xje7rsJNbDl6RmY/3K7xLc9RNoctqcuog13O2j1X5qviSSgfSInrWSeXNC0LCVJxEHsGCtMVimH+dhwRHBp+D/JsGKN2murIQiusLqcuo25iSUCqhFWzuXYVxgq0JBQ4Cx4aqmp7EtIDgFnpLtQHPmLVulb2YTS7puDhJ3Vyvr+SenM+mjtcelTkFF4fpG3frnij48+hyWQHSxQNnQ976FgqpPYsfBvcC4SZ133yGa1JdnfDOVOWWSWqfMDRgettDRd6yR6OiEQcVLkeB3HreDWBPRA4bH/qHRjUcFy791cve5eXk4XNLGBzsCHuDMHYPdQxpvuw7MiRIEz+cNTKPV1P8HEVdmEV4TnIBMbw7RFr+pDsfWBO0UTxKmPotfcxXZ4sRUJWTlXCDebw5Q7CVMgO73D+idaP0UMNIQZrToWSuZMyXnCy6I4b63okswd4ngroYLgvTsXNAkqpAHAz9n/CGzG5IhPrsHpkXPGQCIPohEFfN6+W3ahEbAPFAJuJPFRls+Ymb1LkrJ9Wx9cM44Bl+aYYarAaeqVqtGo1T+9qwiL5pzQ5Wz1rf7t62+HAJUzB/MttVhJqTVR0MB00XBapEcBG2dvviWALtfDZM5iKd8KDCy+g0IKWut49PRej2xl5ctOWO3XRQxcA2s9XkpE99yivKMFyS5k87mY1llccsN+a4/WHvvHf6r0dQEDE9Z+NyrmghNElZQGOI9prtSU2MHQflFO7vCcWMo3hN8qxwWjhqohaMtl6XeQ7SuY9/3Ih3w/zMWRS/SDmojYAqSN9K777fVk6YwSjogeYreD/VcZpSfFiREJg5Z4JhxYWkzobBmEv5Oqf90zqybVjYVSfRFpmLEb8rK23cUktwZqJ4LJdsX77KGKScUYqImdA5EbDEjmUmvWn9HzuwfSF2BjDM1BZw9IpPH0kC7N4guydUuRdxNySqEQKnV2SIW0hGQuzxXubXiOM2uWa4syjkgwms0giG81QSvLXVJ/8kZzeL9TffCCE1g2OXeer0Q1eC/vMftqKARDFRczMI7U8m/xA4xkyhFoFiFi3Xyawp5RtKD/IKD5rKFskzEDlnhPYwCrqp1AE+TVckNmWMWB2VjJpdnRmxL/v0jHbtaNxNINlkWHPSNu7pMK7Onjmu+wJ6EhFgEj9uXQAX3R8uHtqU93CEKrE5rsb3GQIjDIonvkKtkC68p7bqJ0PIDz8VofEsNP551iNrD2YaZfA1onI+ijWLLkIPjgRkIWaWz6s5X4Y/4PTpFcmMkI4ZlKBzFY8m6r1TeU2q77mci2WPOZbJQpvcgHp8G2MhjohD1vjQHEmduIOWNxe68yWl93Htt96DtFtIp9hru7Hp0NpmbDCoACzhFZHKLACg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20ea526b-2267-4f11-bd80-08ddbd4f7144 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7901.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2025 12:11:45.8897 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iVJyyV2gsgyYTgHTzZbvfNRT4cjuE2kt01kqzAGB8aVwJcTS2jwSNkGgwJuArzoJ/svJ2kehaYO5XTccDGKooypFzqmf3Xojle04fP7qFbo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5126 X-Proofpoint-ORIG-GUID: cJ-eIixcON7kBeLXFF70NTcqNviXuWo_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA3MDA3MSBTYWx0ZWRfXzub83NemzLLP NnAxOzlcHD7xKRX3jFJK+esAiuR3aEUCp7ViDXoqo19tKeJChHo0p+6I6z/0yOp+HqsCFjYOPeG qw4qwfQPY0PxlmEXMQfnDq6zLW2LmzrRSjuL1gsjY8RVDHsJfX8nNvVPUHvQsSqVwPXup5DFoL4 MVsczzD44O4JGkJtl6paUxAn0BR7KWzkK8or1Rg+T6zD0zLh78HOqYEczcdDZuy+d070TDtMNYA dGmfLVgrZdlgx8AsWGojidY3P4H+Olq8ZYGYgLW9U69ZI2gklJQtMCDSDiIFiml5Y0sdZGe8h7r B6QN9V7IQh32osxN9vZ7riAftMM/9EXaACNOZmW62eTzsVf7hgEF0dtBCSoLkaOyQ0YWEiTuTC5 kd+HFdYRTBMDiQxZrLBIvj3DOKldFCkHqd+y8tKYsyzoR32dXfoKrC7saGMDssgHWCAIZEnr X-Authority-Analysis: v=2.4 cv=ZrntK87G c=1 sm=1 tr=0 ts=686bb983 cx=c_pps a=TYwVHTXLgyGkI2W0RZOgwA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=t7CeM3EgAAAA:8 a=-HArOTkMHXlwkw5IrL8A:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-GUID: cJ-eIixcON7kBeLXFF70NTcqNviXuWo_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-07_03,2025-07-07_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 spamscore=0 adultscore=0 mlxscore=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=785 clxscore=1015 phishscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2505280000 definitions=main-2507070071 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP 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: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org From: Malte Skarupke [BZ #25847] In my previous change I turned a nested loop into a simple loop. I'm doing the resulting indentation changes in a separate commit to make the diff on the previous commit easier to review. Signed-off-by: Sunil Dora (cherry picked from commit ee6c14ed59d480720721aaacc5fb03213dc153da) --- nptl/pthread_cond_wait.c | 111 +++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 56 deletions(-) diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c index 12c1388c1b..1d61441dcd 100644 --- a/nptl/pthread_cond_wait.c +++ b/nptl/pthread_cond_wait.c @@ -382,66 +382,65 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex, return err; } - - while (1) - { - /* Now wait until a signal is available in our group or it is closed. - Acquire MO so that if we observe (signals == lowseq) after group - switching in __condvar_quiesce_and_switch_g1, we synchronize with that - store and will see the prior update of __g1_start done while switching - groups too. */ - unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g); - uint64_t g1_start = __condvar_load_g1_start_relaxed (cond); - unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U; - - if (seq < (g1_start >> 1)) - { - /* If the group is closed already, - then this waiter originally had enough extra signals to - consume, up until the time its group was closed. */ - break; - } - - /* If there is an available signal, don't block. - If __g1_start has advanced at all, then we must be in G1 - by now, perhaps in the process of switching back to an older - G2, but in either case we're allowed to consume the available - signal and should not block anymore. */ - if ((int)(signals - lowseq) >= 2) - { - /* Try to grab a signal. See above for MO. (if we do another loop - iteration we need to see the correct value of g1_start) */ - if (atomic_compare_exchange_weak_acquire ( - cond->__data.__g_signals + g, + while (1) + { + /* Now wait until a signal is available in our group or it is closed. + Acquire MO so that if we observe (signals == lowseq) after group + switching in __condvar_quiesce_and_switch_g1, we synchronize with that + store and will see the prior update of __g1_start done while switching + groups too. */ + unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g); + uint64_t g1_start = __condvar_load_g1_start_relaxed (cond); + unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U; + + if (seq < (g1_start >> 1)) + { + /* If the group is closed already, + then this waiter originally had enough extra signals to + consume, up until the time its group was closed. */ + break; + } + + /* If there is an available signal, don't block. + If __g1_start has advanced at all, then we must be in G1 + by now, perhaps in the process of switching back to an older + G2, but in either case we're allowed to consume the available + signal and should not block anymore. */ + if ((int)(signals - lowseq) >= 2) + { + /* Try to grab a signal. See above for MO. (if we do another loop + iteration we need to see the correct value of g1_start) */ + if (atomic_compare_exchange_weak_acquire ( + cond->__data.__g_signals + g, &signals, signals - 2)) - break; - else - continue; - } - - // Now block. - struct _pthread_cleanup_buffer buffer; - struct _condvar_cleanup_buffer cbuffer; - cbuffer.wseq = wseq; - cbuffer.cond = cond; - cbuffer.mutex = mutex; - cbuffer.private = private; - __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer); - - err = __futex_abstimed_wait_cancelable64 ( - cond->__data.__g_signals + g, signals, clockid, abstime, private); - - __pthread_cleanup_pop (&buffer, 0); - - if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW)) - { - /* If we timed out, we effectively cancel waiting. */ - __condvar_cancel_waiting (cond, seq, g, private); - result = err; break; - } + else + continue; } + // Now block. + struct _pthread_cleanup_buffer buffer; + struct _condvar_cleanup_buffer cbuffer; + cbuffer.wseq = wseq; + cbuffer.cond = cond; + cbuffer.mutex = mutex; + cbuffer.private = private; + __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer); + + err = __futex_abstimed_wait_cancelable64 ( + cond->__data.__g_signals + g, signals, clockid, abstime, private); + + __pthread_cleanup_pop (&buffer, 0); + + if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW)) + { + /* If we timed out, we effectively cancel waiting. */ + __condvar_cancel_waiting (cond, seq, g, private); + result = err; + break; + } + } + /* Confirm that we have been woken. We do that before acquiring the mutex to allow for execution of pthread_cond_destroy while having acquired the mutex. */