History log of /fuchsia/zircon/third_party/ulib/musl/pthread/pthread_once.c
Revision Date Author Comments
# 1793969d 14-Aug-2017 George Kulakowski <kulakowski@google.com>

[musl][threading] Make C11 call_once the point of truth

Change-Id: Iec84c31434272c613da0d01749a1510b6224ab29


# abd6594a 22-Mar-2017 George Kulakowski <kulakowski@google.com>

[musl][pthread] Remove pthread cancellation machinery

Nothing currently in Fuchsia uses this, nor am I aware of any 2nd or
3rd party code that is likely to. I do not believe that, if someone
were to attempt to truly implement pthread_cancel etc. on Magenta,
that the removal of this code and comments would be a meaningful
impediment.

Change-Id: Ib8435a68d0b053ba3f1d0590640ef54c23e59840


# a4e3ed16 04-Mar-2017 George Kulakowski <kulakowski@google.com>

[musl][once] Name constants in pthread_once

Change-Id: Ide46661fe365b8a2a592d5818512f26c52f54e56


# a2365daa 15-Feb-2017 George Kulakowski <kulakowski@google.com>

[musl][atomics] Use C11 atomics in public types

Change-Id: Ie684384c127d881fbeccb1290adce622d368d136


# ab434f7f 15-Feb-2017 James Robinson <jamesr@google.com>

Revert "[musl][atomics] Use C11 atomics in public types"

This reverts commits f2373edae22bc921a41286318243b3985102b510 and
c97bbfb0755f81841769a12a12ba5fbe86144a6b

This breaks libc++ builds:

FAILED: src/CMakeFiles/unwind_objects.dir/libunwind.cpp.o
/b/swarm_slave/w/irzvTVgH/kitchen-workdir/buildtools/toolchain/clang+llvm-x86_64-linux/bin/clang++ -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libunwind/include -I/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include -stdlib=libc++ -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -fcolor-diagnostics -target x86_64-fuchsia --sysroot=/b/swarm_slave/w/irzvTVgH/kitchen-workdir/out/sysroot/x86_64-fuchsia -std=c++11 -g -Werror=return-type -W -Wall -Wchar-subscripts -Wconversion -Wmismatched-tags -Wmissing-braces -Wnewline-eof -Wno-unused-function -Wshadow -Wshorten-64-to-32 -Wsign-compare -Wsign-conversion -Wstrict-aliasing=2 -Wstrict-overflow=4 -Wunused-parameter -Wunused-variable -Wwrite-strings -Wundef -Wno-error -pedantic -D_DEBUG -D_LIBUNWIND_IS_NATIVE_ONLY -fPIC -fno-exceptions -funwind-tables -I/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include -stdlib=libc++ -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -fcolor-diagnostics -target x86_64-fuchsia --sysroot=/b/swarm_slave/w/irzvTVgH/kitchen-workdir/out/sysroot/x86_64-fuchsia -std=c++11 -fstrict-aliasing -fno-rtti -MD -MT src/CMakeFiles/unwind_objects.dir/libunwind.cpp.o -MF src/CMakeFiles/unwind_objects.dir/libunwind.cpp.o.d -o src/CMakeFiles/unwind_objects.dir/libunwind.cpp.o -c /b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libunwind/src/libunwind.cpp
In file included from /b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libunwind/src/libunwind.cpp:19:
In file included from /b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include/algorithm:640:
In file included from /b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include/memory:643:
/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include/atomic:1713:17: error: address argument to atomic operation must be a pointer to _Atomic type ('volatile bool *' invalid)
{return __c11_atomic_exchange(&__a_, true, __m);}
^ ~~~~~
/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include/atomic:1716:17: error: address argument to atomic operation must be a pointer to _Atomic type ('bool *' invalid)
{return __c11_atomic_exchange(&__a_, true, __m);}
^ ~~~~~
/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include/atomic:1719:10: error: address argument to atomic operation must be a pointer to _Atomic type ('volatile bool *' invalid)
{__c11_atomic_store(&__a_, false, __m);}
^ ~~~~~
/b/swarm_slave/w/irzvTVgH/kitchen-workdir/third_party/llvm/runtimes/libcxx/include/atomic:1722:10: error: address argument to atomic operation must be a pointer to _Atomic type ('bool *' invalid)
{__c11_atomic_store(&__a_, false, __m);}

Change-Id: I2fba5de2b1abc16f6e2ab3ae11f4b6ee1e70f135


# f2373eda 10-Feb-2017 George Kulakowski <kulakowski@google.com>

[musl][atomics] Use C11 atomics in public types

For now, use a shim around compare and swap. Followup patches will
rewrite them directly into the C11 style, but for now minimize noise.

Change-Id: Idf3626fea6318b8508d6e65f2634a71e93cf866c


# 13e7f0cd 10-Feb-2017 George Kulakowski <kulakowski@google.com>

[musl][atomics] Remove bespoke a_barrier in favor of stdatomic.h

The only interesting call site for us is pthread_once.

Change-Id: I4d5362a7918f7193ca7dad75a0d0f08c43e8e044


# 0caf6cd3 23-Jun-2016 George Kulakowski <kulakowski@google.com>

[musl] Pull __wake and __wait out of pthread_impl.h

Another step towards disentangling pthreads.

Change-Id: I8ffbd594eaa62f1190ea6dd59b4b2aac8f8a02e6


# 9a76b0d6 22-Jun-2016 George Kulakowski <kulakowski@google.com>

[musl] Pull pthreads source files into a separate directory

Change-Id: Ic34f0c5c18cf50e42291342e978169ebf1130ae1