Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ZGpt+VF3e5pmnXKH@voyager>
Date: Sun, 21 May 2023 21:16:09 +0200
From: Markus Wichmann <nullplan@....net>
To: musl@...ts.openwall.com
Subject: Re: Re:Re: Re: Question:Why musl call a_barrier in __pthread_once?

Am Thu, May 18, 2023 at 10:37:06PM +0800 schrieb 847567161:
> How about the  implement of aosp? Didn't they follow the posix?
> http://aospxref.com/android-13.0.0_r3/xref/bionic/libc/bionic/pthread_once.cpp#41
>

Apparently not. If the initialization routine is cancelled, the control
variable is not reset to 0, so all future calls to pthread_once() on the
same variable will just hang. But that can be remedied with adding the
requisite pthread_cleanup_push()/pop() calls around the call to the
init routine.

Besides it doesn't help your case. You wanted to remove the "dmb"
instruction right? Well, that code adds it if the compiler thinks it is
necessary, and GCC trunk for ARM does so: https://godbolt.org/z/WcrfTdTx5

Ciao,
Markus

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.