From patchwork Thu Sep 8 14:06:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 1675648 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=Fd1Kysep; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MNgtR0Rs0z1yhR for ; Fri, 9 Sep 2022 00:07:27 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8E00638582AE for ; Thu, 8 Sep 2022 14:07:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8E00638582AE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1662646044; bh=87GrRneE2PVhhjjFy15d3uXOtsxuZeF9dfqH9w/fBT8=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Fd1Kysepsh9WgNuP7fDACLfzelYHBf7wltc4aI6XJIepL0e9dNJZmU7RAhj4LymgK ufKaWq5Fz2OKseEv5qDUx5EI1vYkjyPOMBegZhgO2s6Z1oqGcFSMdCIwALJ5iOCL++ jscJAjYzfutfYBq+XSS2dSv93DhJC/VHbigNf8Bw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2086.outbound.protection.outlook.com [40.107.22.86]) by sourceware.org (Postfix) with ESMTPS id 92B673858435 for ; Thu, 8 Sep 2022 14:07:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 92B673858435 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=nLdHi6TiQow4uSEtllvEbm99Hbdg8z4wF/clynmwTuTKfn+IXY0OKM5PLbKu/Ln3BdvO/fqfe3UaXr3xAAydK93rj/SQ+j928hIhlQRClV6dE3SX/W8MdbiH4jhbxsc22RV+0HJM+POx/pGRv6JQmWVH7SEYTRFyPtsL/f5U4Z/j6/5kH+DRxY1U72Od07lzU2TmbYuAsZP5mCTqpMfaUXTwat5DORoINvOhz54UzwSqoBLKMYVdo47IhYc1P7dv6JD1ysJSAxF9YnJNdR4lOB8BeXnwmoEGCfxpJFhWGmhi4Hs73zlgInvpR3FV2nOXZrw3qMEjtkElHqyj3dppbg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=87GrRneE2PVhhjjFy15d3uXOtsxuZeF9dfqH9w/fBT8=; b=BsOeyZyY+36yZ+38qsC7M4uYXF+hztIneIJ/iqMV7iSBs7Hzd8ch1BJGB9KmkdZa9O5zziFAX0Ca4QcKiEb4ngcW19klsn/PWVyJy8h2I2ZoYsQrtj3k485kAFtn/KhXuq1/t3v/kt/E5DkjV6lvVkspaKh83b88dY3XQ2y8m670zgaJ9ONXCRQIJvtmi3nn4yAJ6ERu9oLkj8cg1NoDgzWLJio0lk1/Ze6ogcX6LbEX1kB1hQvguiw0PA1xhnvd6yPWQEAZj0KWQZ0QROwfyEJfEZZ9HyzZiYuZRRuWs+DsHHEEq+bhrV9/UdS2HOUWK9lGdlZkEKCkMSYZ+fPr2A== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from AM6PR04CA0009.eurprd04.prod.outlook.com (2603:10a6:20b:92::22) by PAXPR08MB6559.eurprd08.prod.outlook.com (2603:10a6:102:df::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.14; Thu, 8 Sep 2022 14:07:06 +0000 Received: from VE1EUR03FT036.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:92:cafe::dd) by AM6PR04CA0009.outlook.office365.com (2603:10a6:20b:92::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.18 via Frontend Transport; Thu, 8 Sep 2022 14:07:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT036.mail.protection.outlook.com (10.152.19.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.13 via Frontend Transport; Thu, 8 Sep 2022 14:07:05 +0000 Received: ("Tessian outbound 6a3290ff1310:v123"); Thu, 08 Sep 2022 14:07:05 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 84e20ec064238edc X-CR-MTA-TID: 64aa7808 Received: from a089acc2477b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5A982804-042A-4D28-9EB8-315B0E98D1F5.1; Thu, 08 Sep 2022 14:06:58 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a089acc2477b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 08 Sep 2022 14:06:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MsSZwhHKlpICD//dSlZ5B23qI7ePalhJmNx6LTjffMK1+1ZkzxU/JbnWMnlvOQaYn8xF/I9wQQEUdLGgRBYmEhWLSCExU5iAOaCLRHwQx+jnYaRTyMvz9SN+tWsAsNqB9GZN8VPwsGt812L7WSznfjU+neZF5h8MnNtZjPvSOJExXUmPXes8AhtXk+spSXXXe6eLe9xau4pdvOZOEIVTZNRsV5Eh9FFvoM6nkPF5YOUZKoNJMhYpm5+/b2PV2rerYgcwDJiZ9yCA1ZEV81+IiykIX0BjRpgy0R9koLz/Umc7q9AN1cSQJk5PSMU5lyrGlysMdVJdkv/gWenebSG9Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=87GrRneE2PVhhjjFy15d3uXOtsxuZeF9dfqH9w/fBT8=; b=fFH3vVfNuzxm3tBDkKsnLHlxTdKe1Y+hgZPe10zAWFIPdlpyoUB0ez0ISMtES8o3HTn/2Ax15stEykX6SoPU/sogKVMV4ZPWu1HJD7AUbFDHeD8ebLoXoh0yYPI7Hm5T4DsVAGbumjDyppTntOhNyQijU1cZWwGDoN4dA1xiN5UhHpM4w1rkGVllhozRZ03R0bDR+qazQ0J/JEoyT37elj2InUJU+eq4F8B1w9VoyXLVBXD3kYf7VXf0lao0z/ND28ad1+GXXhnF+Rlqz4TMQF0/rXr+PUgs3C+glYzPPq+dyOOt2vN4tk3mTnrYihTuA03TESakjKR3vrPXMI2dYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AS4PR08MB7901.eurprd08.prod.outlook.com (2603:10a6:20b:51c::16) by DU0PR08MB7905.eurprd08.prod.outlook.com (2603:10a6:10:3b3::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.12; Thu, 8 Sep 2022 14:06:54 +0000 Received: from AS4PR08MB7901.eurprd08.prod.outlook.com ([fe80::d11d:77d0:c2fb:f11a]) by AS4PR08MB7901.eurprd08.prod.outlook.com ([fe80::d11d:77d0:c2fb:f11a%5]) with mapi id 15.20.5612.014; Thu, 8 Sep 2022 14:06:54 +0000 To: 'GNU C Library' Subject: [PATCH] Use C11 atomics instead atomic_decrement_and_test Thread-Topic: [PATCH] Use C11 atomics instead atomic_decrement_and_test Thread-Index: AQHYw4wGPP2u7at5Q0WaojjkgK7/Zw== Date: Thu, 8 Sep 2022 14:06:54 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AS4PR08MB7901:EE_|DU0PR08MB7905:EE_|VE1EUR03FT036:EE_|PAXPR08MB6559:EE_ X-MS-Office365-Filtering-Correlation-Id: 2274c5d5-2314-45df-f8a1-08da91a3694a x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: aKP5v5oFoOu9mYIYdETtIc37jw8CqsVWzPKYTi8y6sRaIc/GWER4ISV/BwIrlttL0jqK5deEKTxeFBLmplf2ahnlU8vEsSM5at7edCQsFFGb5StrtOQww8p7sjXcmAZl8RGHeNxVX0ZO8EuHL/75SI84a1ctiCDotW8clrysSnNT+P9LJLZ65kslSyWhJPZ9j5LfrjlytoII7z+Oobh6H6KqY/0X4xFt/1fMabWQuhEMYcLvkc83x3wV+YX1qBEAJrqygYAvWApNoSbNBadaPFu70cSylrMJQCeYX2W+7mQQdgJVii8+UdlcZXfJIg+0Yp4RKkm+cAMyDUMGUcfJAUV2DJyOTWdv8WXd+xm2G983W+64Z5aMlsncnYzaUUMeVoS7Dk+Mi9GcsjcYbtBEI6rtvHnLjnaacigBfqr/xoA+GBuFq+7EKsYCrcYBZ46L4YKAD4HEHWDnRfILx95LT1pGV9SzsMSzNpsPSX5glPiC1yKiMeNj9dqVMDbfXHF/a8hwxba0/udO0JvWPW/TU0usdzA2HDKew0C37mdutjbgQDoCSVxqdeNzcbjbJWjdh1Cyq9+UAxAzgxbj2ZjXL+S3Mj/qgVIPkqXGwPSnSmSYzFA3voQ1diHCS1Ur6g3lm6sTGmTPeDtUsheXjyt5A23wmTpq+2onqy0hlYtT3iCNhdICmIOpPkU/o2lSLZbVLa3qYZmKDXuhBcQ0OmnkJbjdWA/IHFBEmSAlhCPN5MKA+d5HljwMD6f870a+eIlt6uXFSC6O8yHS1fjqqMhGmA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS4PR08MB7901.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(346002)(39860400002)(136003)(376002)(366004)(9686003)(71200400001)(478600001)(6506007)(7696005)(41300700001)(8676002)(4326008)(316002)(66556008)(5660300002)(6916009)(66476007)(76116006)(64756008)(91956017)(66946007)(66446008)(26005)(83380400001)(8936002)(86362001)(33656002)(2906002)(38100700002)(52536014)(38070700005)(186003)(55016003)(122000001); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7905 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT036.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 85e6bb23-5674-4018-2b39-08da91a36255 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QtBxzJuV+dRKXycxwhVfCIs7TPEZtEKr+jb764KtD0pj/JSNwT7ekv1QqmJ+mJvLmu1S/Nk8vkXncQLbJ30GKnegNraTZMpg02FLDsyt9TuWY3JIw1n9H2CHW4wzwfhx56AScO+eFMLwnN+sdU/5MVryM1b/i8XNLUXJSURqB3Sx1BpO7lD+MFOkUxon74GFEtfYEFmnRdGkfaiZIUfaObfbblOFrJPm41N2cvQmpn90zms3MPXeB3diUB3nAylFz9mOOnyB1Q8EJb8BNRi+umQvykxgLYXUN/WrZ2tDeTYwBYC5x6xLEjy2x5c7IV8aNI44S4cEJluxKqhN/mmlxETOeZUjPNdXf3YUxwOzWr0CX083fUPqtsORK0yClNmZXNNVM7Agpxmlh3kCZ7KiVhG+F5JVfnduLGX19Bwn93aSXeBgrx2tqrwt9EOP4thyfIfhZkU83cKHvZva8y+Pzit72NqcUhk+7Z3k3Q+WQKYFxzYdKfEAvvQAIAvPhma1G/idB/LhEYkT2wRareBYDDqu2y+xpMXYgi3mKsx4HbzI6VecBbNsQ9IXZ5EJ5d83BmjWvIq89DR1JvAbZxHNkjt1SoA+sRHgDQkuvTcMXG0XGIZI1Xq+IfH5QU1JmvxigBsCJtozGqFN4jxhINjuHAa2qcLxRrcnPiW9jiCPieU2itjX9bDDsd3109xWVR1j3Fknq44MgbN8TAxgZn8ikaYVUtYlC3tvlIaPMnBdAT7YU4db4RztlLRvuMUfp8328xKfRVeeNpP55kdTQNaJog== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230016)(4636009)(376002)(136003)(396003)(346002)(39860400002)(46966006)(40470700004)(36840700001)(36860700001)(83380400001)(336012)(186003)(82740400003)(316002)(26005)(86362001)(47076005)(9686003)(6916009)(41300700001)(40480700001)(55016003)(81166007)(107886003)(7696005)(6506007)(82310400005)(478600001)(40460700003)(356005)(70586007)(8936002)(33656002)(70206006)(5660300002)(52536014)(2906002)(4326008)(8676002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2022 14:07:05.7470 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2274c5d5-2314-45df-f8a1-08da91a3694a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT036.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6559 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY 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.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilco Dijkstra via Libc-alpha From: Wilco Dijkstra Reply-To: Wilco Dijkstra Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" Replace atomic_decrement_and_test with atomic_fetch_add_relaxed. Passes regress on AArch64. Reviewed-by: Adhemerval Zanella diff --git a/htl/pt-dealloc.c b/htl/pt-dealloc.c index c776e3471dc376977ca7058f0d143f0a842d5799..86bbb3091fbd3758b06294ca705dc774cf8bf0eb 100644 --- a/htl/pt-dealloc.c +++ b/htl/pt-dealloc.c @@ -33,7 +33,7 @@ extern pthread_mutex_t __pthread_free_threads_lock; void __pthread_dealloc (struct __pthread *pthread) { - if (!atomic_decrement_and_test (&pthread->nr_refs)) + if (atomic_fetch_add_relaxed (&pthread->nr_refs, -1) != 1) return; /* Withdraw this thread from the thread ID lookup table. */ diff --git a/htl/pt-exit.c b/htl/pt-exit.c index f0759c8738e6da4c8e0ba47f6d15720203f6954e..3c0a8c52f34ed64b94ce71a0764512cb76351a3a 100644 --- a/htl/pt-exit.c +++ b/htl/pt-exit.c @@ -50,7 +50,7 @@ __pthread_exit (void *status) /* Decrease the number of threads. We use an atomic operation to make sure that only the last thread calls `exit'. */ - if (atomic_decrement_and_test (&__pthread_total)) + if (atomic_fetch_add_relaxed (&__pthread_total, -1) == 1) /* We are the last thread. */ exit (0); diff --git a/manual/llio.texi b/manual/llio.texi index 4e6e3fb672bb8ecbb1bb52faf3d70d9b7b33973f..eba9a0e6593f17116b41ff302cfca05846727155 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -2614,7 +2614,7 @@ aiocb64}, since the LFS transparently replaces the old interface. @c free @ascuheap @acsmem @c libc_thread_freeres @c libc_thread_subfreeres ok -@c atomic_decrement_and_test ok +@c atomic_fetch_add_relaxed ok @c td_eventword ok @c td_eventmask ok @c atomic_compare_exchange_bool_acq ok diff --git a/nptl/cond-perf.c b/nptl/cond-perf.c index 9c9488e2743f17eb4beeaadf45ef83a38a9f9bf9..baf69e6d34fdb3ffef97b32fb9db422077a0359b 100644 --- a/nptl/cond-perf.c +++ b/nptl/cond-perf.c @@ -24,7 +24,7 @@ cons (void *arg) do { - if (atomic_decrement_and_test (&ntogo)) + if (atomic_fetch_add_relaxed (&ntogo, -1) == 1) { pthread_mutex_lock (&mut2); alldone = true; diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 2602dba54e872f36bd54955af7587378e5dc3812..ada3fdd4d440c3fdcf4567734a452c8ba4d0fce1 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -489,7 +489,7 @@ start_thread (void *arg) the breakpoint reports TD_THR_RUN state rather than TD_THR_ZOMBIE. */ atomic_fetch_or_relaxed (&pd->cancelhandling, EXITING_BITMASK); - if (__glibc_unlikely (atomic_decrement_and_test (&__nptl_nthreads))) + if (__glibc_unlikely (atomic_fetch_add_relaxed (&__nptl_nthreads, -1) == 1)) /* This was the last thread. */ exit (0); diff --git a/sysdeps/nptl/libc_start_call_main.h b/sysdeps/nptl/libc_start_call_main.h index a9e85f2b098dfc6790d719bba9662e428ab237e6..c10a16b2c4a61e74f6bf18396935b87208df4f7e 100644 --- a/sysdeps/nptl/libc_start_call_main.h +++ b/sysdeps/nptl/libc_start_call_main.h @@ -65,7 +65,7 @@ __libc_start_call_main (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), /* One less thread. Decrement the counter. If it is zero we terminate the entire process. */ result = 0; - if (! atomic_decrement_and_test (&__nptl_nthreads)) + if (atomic_fetch_add_relaxed (&__nptl_nthreads, -1) != 1) /* Not much left to do but to exit the thread, not the process. */ while (1) INTERNAL_SYSCALL_CALL (exit, 0);