From patchwork Tue Jul 22 14:58:18 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: 116779 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 9A83E385B535 for ; Tue, 22 Jul 2025 15:00:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9A83E385B535 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 8D99C3858C48 for ; Tue, 22 Jul 2025 14:58:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8D99C3858C48 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 8D99C3858C48 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=1753196325; cv=pass; b=g8etz+9M75w77lVnJBXJQOf5M56wYeklmJLkMWbWK9+Kp63ob3yH7fisqqS6R7VkSEVxh5PzT8RMGFrscZTV6SbILsryUnXlO2pvEXKdYhw4Ea098XW5/oVdg12brZ/nygBobqwVE25x9Cly0z9Bta/D56gqF8Lr9S4lCuIlIJo= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1753196325; c=relaxed/simple; bh=luXOoOLxPeONuUHOim7bRPFv1YOhLUfNLaSryPwq2Ks=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=PBmvV6B8y2N7r5FdFGpKTrbkf33UCc9qMHAlvvaFRFO/6WKyx8+UcA/hDO/xeC+ENVcCf9SUAV6PFmtPdvoayJZyS2FRZFfmAqD7lzvH+vOTDAP8PIxyZ8P3dpZl5+K3et10guxfUOhxkKU9F2Ox1EpKKVUR+8W+F/a79BghuO4= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8D99C3858C48 Received: from pps.filterd (m0250811.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.8/8.18.1.8) with ESMTP id 56M5f5wb3558072; Tue, 22 Jul 2025 14:58:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12on2062.outbound.protection.outlook.com [40.107.244.62]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 481vqu8xc9-7 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 22 Jul 2025 14:58:43 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=neYsqAJZ0NZrHZUbBdIlNKKYT8liLT+guUEgrfMMzVkdPoUiry2eGVnnahW9kH8VsBujyu/SOCkxWtEUclNz5eTWCqOhk5Ypfrgo0v5YcBa7fQHuuH2SfzWdXFpk4SKwZmOLwOq12W4FJb/GR9XY0UdVJjKRLmM5xunQ12Nw8/RSziAtqtNj+baurZlwBKq0qpwzQqFqHQPCXOOz0Runn/CgJ+xDxMSA3n/iW1VT7hnqURbWbvcOnyZ/nQehSJel3hCNA2aZ48qoZFxzdVfuMZjawI61uvO45nJeY+ftRgR05CzuZo0APY8+zHnlQ92T47cddNb2rBxYzYzxAHlQYA== 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=ZdBS2dlpovo0s7Ii492zk6DtBGQ1ojfjHHfV9RrZ4zE=; b=jia52aZqO3M50oV+WS6ZSacPhtsAl7Cxmzq/YNWtvS1yMysOVHlQQxzKhnb0HQ7FaoXt2+1bq5kD1tybyehvi1SFoX+5v0CbcY6WNFyHN9bTaVvUzPGD4debOxxpNUnWD/+vFoBrMSW/EHhCbflmcc44T0lxGuW4Kbndys/RxhDkvxLURTrj11roRDwvWmk9o/VOwqY6SXY3bL+SGfkg9MVSC2Lk9yLQZ9W0q/VHULO5VUBXdzz++5U+xSrbZmoovnyy1n7/FqCx636BvjlwqLJI/9zaDoHxgbaygKqR3BdFHKDtr2vwKf2PeA6sjRQsZfjBp5fd6+TJXe9a14pDlA== 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 BL3PR11MB6313.namprd11.prod.outlook.com (2603:10b6:208:3b0::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.29; Tue, 22 Jul 2025 14:58:40 +0000 Received: from DS0PR11MB7901.namprd11.prod.outlook.com ([fe80::9fa:eb3f:cf26:264d]) by DS0PR11MB7901.namprd11.prod.outlook.com ([fe80::9fa:eb3f:cf26:264d%3]) with mapi id 15.20.8943.029; Tue, 22 Jul 2025 14:58:40 +0000 From: sunilkumar.dora@windriver.com To: libc-alpha@sourceware.org Cc: sunilkumar.dora@windriver.com, carlos@redhat.com, fweimer@redhat.com, Sundeep.Kokkonda@windriver.com Subject: [PATCH 07/10] [2.36] nptl: Fix indentation Date: Tue, 22 Jul 2025 07:58:18 -0700 Message-ID: <20250722145821.2214847-8-sunilkumar.dora@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250722145821.2214847-1-sunilkumar.dora@windriver.com> References: <20250722145821.2214847-1-sunilkumar.dora@windriver.com> X-ClientProxiedBy: SJ0PR13CA0232.namprd13.prod.outlook.com (2603:10b6:a03:2c1::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_|BL3PR11MB6313:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ba96064-3711-4db7-1d03-08ddc9303eb6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: FRPt7dPVR+jAOgBOojoZMK1OfyjQUJUADRxfv4OYtmyGS1qaxgrPkOnmlRyIIlHZshqvRwOKx0nxHQ62MTqyUeI2Asyo5jAr7ZO5BcN/d8ySche2Pfg/1cHSG7LB6fYhiLCcesqa0vcpCudOCxi2R91B6eHDc4Rqj2IDRNfxPQ8DeJ0jWBXEFA5lgbwrHDlpoiZL+Sll2iG7IIgSheszUiEvVc/AVhDYvl/mPXIBb8WAVIfCQlLw4cMVCo6b42F/9w4KN2oJj36Tcsc4jVUmqYicoSjPc/e+kYm0/D1d0RKGdSdc+z1D+U72HKUl5v/2ph6Ca62ncII19yk+HlKDoij/fruSoVqwNjMKHlvexv0WatRxNiH0gq4vsiN9WirQt3vQCHPwnTgJyhpOBmRFBUI/eap21Bys09dtk8zDOhSM133Hep9gZFtDGil3lNrut8qpGUC+/gz0GQWNkrkBJp8LYu4EAElLG5n8BB2n7YK9xzXfmEvmTQo6tga2s/CJwwHCs3meMowRFU9NHmeKbbjmEfdSlnEETZ5jaliTctPvMtAR6sDOFqs2hA9ZOt3U2YlRsnefxgj46NlOsIuDrocf25m+GwiWQSGiPBsAcLEJxfn1Jodxf3irHEbx/5w8yeDcX1Ybmoi+I2D2nAQeALDRgXb0x5jGqR7LWH5+kf/Sl5xItEt5z7jsU0F/IIHCrFJc6L5vHJjBKI4NFhcWE93FxA/WTW1k370mU9XSy8K6yBw/rRS//vPmd2vuUBiK1URzhZ+NE0bBhXRNPb8QskGGAK3WCOh/gwKZOtuXJTswJOquHKWsNbbXcDtz5qpQZXpbWtbCALoBWY+z3f2ltmOucEHI+My/5hBx4y63xsMhS5mXk2st8TAxxdMVWLMoO4rpgo/LQdOizpSQZGzwQxIvnxO5x5J8CegvPUGiqZ8yaM02t5VxRRGCX7immZsMT7esGr82i2wHSRM8E9d6AXzS5g9M7hXqVR4JQEAeYmcISUFnb0DcGayz1jSoNnRxzpa9k9l/xR4xJ7Aa3lEd0vc5m57NzDC0qsem+NFbScj+XjQAWpmBaB90JfcjqRZyg1nU5xFLcdb69u1gov7wPG+5iMJ1E8isutNnXDSqeA2IfSM86v9CHzQwzD3ur4wuiAZbHGdNcNs4lKaeFlecqTZykXV5GTxtr08YY2l5bgLQD5OP227hDCKRmfnpCRndzl44koyJ4J2SD/LOo44b0FJohDrXU40KY2shWYlgSh26AK83Pgvk2la35oMzTzgdtbhiY0lGSzhyM3G1ioNtFSZDupGulqN7D0jvutCM03Ml4q2NDMPdGxJ8ZScy0g4Y1AZoqRsAklqNDnmjZSHjeYEHYJHc62V2owXp1967zXdXe9fo3jVMGtMRz0RWSbE+WUfZI7yJCRqQ+dLpLC6KbVzVWRUALTikB0vteXA4rRpl4DrpXmMxMnPLncNywx2mFCDDMOhCxQcbiTs1SSFBnw== 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)(376014)(52116014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 18OopKL8YGl87WhXEWvPwv+Gdn83N2co4DI2yeqau1jwEg0gVfDX70ZcHjy0n4vN5lor4sSC11CbuNjgGV6uF2iRNbyUWkvCxf2pHAtTy36bfk7sGNJfsGhaXACNyzR8WGESyGHP41Sz5DurARGHV4Bv//qSmE3ej80Qh78lgNI8oa62jECQismS4QGvzIsNWSq1apPy8GDl9E14nrBgQiiCbooYuTErqbVaN/fn5nVaIdbPIc5C4TRpqX1Qy8Ygwg5Td7OwdTWgcGxGZk37YI0M1+stna+vc8bODuh7KBV9h2xPRFq68rTMskf0ju+OdXcy82byKi4b8fg4QL7GQoDHvlNU4tzUrYC7nWVgikOnT708wuqlnRshhvvvQ4PkctwTqgRdkOTIA3VRPuqLxiZkA4Y5S3Sbz0sAEXDTWJEg0YLEEXSkWql+vg77achNjnfAbRTQ2jyWsDQGQnl+VrtUYGRg6PYGRmCRNX4xHIKrmboRHfWhDwCjrRFlbDW3khs3Iw7i4QdcAfGQNWQXJwZMZhjhlg/roAg93g5xLYkldGuuS6mcSo59uSSCLwDRtflmWR1lXmgOjUH6x4MJXhfEWDmXyTjawikJx/BITXEG55kxk61ATmFs7IrsFPQ2NDFLpwJkoPydvAtY4jWjS0ldfqRO2vu1LGRrkYYMM8cqRASA2qbE53/kuc8omS1jToYuJ7VX+cv9l1mGV9WZZwqdKvFiFZ5jDtDcCjLq+8ilrCIcEuLNvQAY78Y4Qlwke/UrGFvR6SO1bBSC21Fog4lJKWTjHqWkrXbVxnG9XXcAjiF4fG1UdwBpWWpL5Dpub3DDtrDM2XlrJkaIvhTGNLJ4RdZB6j4SQooO0lFHTQ6lpe2gC8ZdHlpsMyPh4zXocIpnpsk6yRtIeT3ls/qGg/NwGi3JuqJLUKykIPwv3s423FFBS3tErOad0EkW7FH9OL0M9pHqeC1ZxLaB4K1S8sLBy18qDI8DY+wTtdo3mJQC5SkR4fa78IrmeCAXxZlHF14ScBsmK1MtRD6e9L0dFkhRq4UTXifmAUUC9oKisMj5i5r60Mfi76qx0pZodOCl8rpoyc2VQRzhKpOakP8e1HBaVf6fzHrhY14j3q0taiGSF43uYo5L1Bw8BmHH0iLseawu9Kgnu8UlehIlTu2SGWS2QSZy2eNlFAL7ZawvdZMBHZimAX23vkmeL5y/+wcxt7Ir8SrSv8xistFxxzqtaNWORy89GnTyJGgMS76KRGf+3idP+lbU6TuQxnhn/IVshHP1utr30+wRqc7q0VTo7cj0hmlOaZfCtyRbw5CyTxFEP+XrrnmtcQc9Ti7y019TlucsgpkbWXVNLjThqWR/eQcHKyO6QRGJMg1tn+ygqYHBGjbHeJifqZXsQK+cMJweoSqMKX0hrTef237aGQu1vJAfSM0JiMsXwuXrrIlLhwmWBQaI3CGdtxiiY6KxLya2SPiy0Y2hGHSGwfBBiiDMRVPW2nUy60yKW47OBEx1nNUtbLVzpcNIaW/tyj0hmBUk37XN2oJE6OvYKHJLtIoq4rXLYrPZwBch0xfiEiPn/wkSofWoKJ+lOvHI1t6Vgl9XI4owjeNAa6zuF/jDfeIbSA== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ba96064-3711-4db7-1d03-08ddc9303eb6 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7901.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2025 14:58:40.5902 (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: orZyL5JOnb77WE2SHTMCEZt5gGIZXcqHZihjMYzbe1KNF8B+ifb51Sd/0Cj3kh7Pem+BN4tXbHnFmZiq2i9B359SyBVRC4aofuHPFcTDlyY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB6313 X-Proofpoint-GUID: uI2bPV7m-Qf1AzD5HPFa515bl9HTs3fa X-Proofpoint-ORIG-GUID: uI2bPV7m-Qf1AzD5HPFa515bl9HTs3fa X-Authority-Analysis: v=2.4 cv=AbqxH2XG c=1 sm=1 tr=0 ts=687fa723 cx=c_pps a=7j0Ltmo+QGRCGvpdpD29zg==: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-Spam-Details-Enc: AW1haW4tMjUwNzIyMDEyNCBTYWx0ZWRfX7tFa73g8Xrzm 14lsz/Nne6tFXo0mAFKh6B+AoEwAZcFnfLLFoH0EJ8hR0r7Bp6HsAoWk801qvxyC9iB19ahST93 eWvvD/2P7v49KM69QtbhE4vQMMe0vwSIvykIYzDwuYnVnN2razQ9/2C9wnFFGgbdJxeADwjkNYV dDXx6Yhdczwd2LftM60Do5fnBUc807WSJ85wOzYDoVkwzVvH0MOKJ/MhT5FLSHTALAUabrzQrhE ROWwQC/hqxyJbiA1PPxuHsScGT36X+B1epCb+AMEG6zab25hb1O8uqElWEyvh0dB6s3x0ZuBc15 eaXxK6o22FX92E1D62EdldiVpIRg48O5+S3JpHnuDMEGHOfOWUk3TtrSr1f4gTMtrLjsPHaaXmP DZInOrGu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-22_02,2025-07-21_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2507210000 definitions=main-2507210183 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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. (cherry picked from commit ee6c14ed59d480720721aaacc5fb03213dc153da) Signed-off-by: Sunil Dora --- nptl/pthread_cond_wait.c | 110 +++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c index c8c99bbf2c..987f1c454a 100644 --- a/nptl/pthread_cond_wait.c +++ b/nptl/pthread_cond_wait.c @@ -383,65 +383,65 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex, } - 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. */