Skip to content
  1. Sep 04, 2016
  2. Jun 15, 2016
  3. Jun 14, 2016
    • Eric Fiselier's avatar
      Implement variadic lock_guard. · 48f35e07
      Eric Fiselier authored
      Summary:
      This patch implements the variadic `lock_guard` paper. 
      
      Making `lock_guard` variadic is a ABI breaking change because the specialization `lock_guard<_Mutex>` mangles differently then when it was the primary template. This change only provides variadic `lock_guard` in ABI V2 or when `_LIBCPP_ABI_VARIADIC_LOCK_GUARD` is defined.
      
      Note that in ABI V2 `lock_guard` must always be declared as a variadic template, even in C++03, in order to keep the ABI consistent. For this reason `lock_guard` is forward declared as a variadic template in all standard dialects and therefore depends on variadic templates being provided as an extension in C++03. All supported versions of Clang and GCC provide this extension.
      
      
      
      
      Reviewers: mclow.lists
      
      Subscribers: K-ballo, mclow.lists, cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D21260
      
      llvm-svn: 272634
      48f35e07
  4. May 06, 2016
    • Asiri Rathnayake's avatar
      Refactor pthread usage of libcxx. · c7e4239f
      Asiri Rathnayake authored
      This patch extracts out all the pthread dependencies of libcxx into the
      new header __threading_support. The motivation is to make it easy to
      re-target libcxx into platforms that do not support pthread.
      
      Original patch from Fulvio Esposito (fulvio.esposito@outlook.com) - D11781
      
      Applied with tweaks - D19412
      
      Change-Id: I301111f0075de93dd8129416e06babc195aa936b
      llvm-svn: 268734
      c7e4239f
  5. Aug 27, 2015
  6. Jul 07, 2015
    • Eric Fiselier's avatar
      [libcxx] Add atomic_support.h header to src that handles needed atomic operations. · 1faf289e
      Eric Fiselier authored
      Summary:
      In some places in libc++ we need to use the `__atomic_*` builtins. This patch adds a header that provides access to those builtins in a uniform way from within the dylib source.
      
      If the compiler building the dylib does not support these builtins then a warning is issued.
      
      Only relaxed loads are needed within the headers. A singe function to do these relaxed loads has been added to `<memory>`.
      
      This patch applies the new atomic builtins to `__shared_count` and `call_once`.
      
      Reviewers: mclow.lists
      
      Subscribers: majnemer, jroelofs, cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D10406
      
      llvm-svn: 241532
      1faf289e
  7. Jun 13, 2015
  8. Dec 08, 2014
  9. Sep 05, 2014
  10. Jul 29, 2014
  11. Aug 12, 2013
  12. Mar 07, 2013
  13. Sep 14, 2012
  14. Jul 21, 2012
  15. Dec 01, 2011
  16. Nov 29, 2011
  17. Oct 17, 2011
  18. Jun 30, 2011
  19. May 19, 2011
    • Howard Hinnant's avatar
      I had a giant misunderstanding of what 'synchronizes with' meant in... · ec0810e1
      Howard Hinnant authored
      I had a giant misunderstanding of what 'synchronizes with' meant in [futures.async]/p5.  This invalidated the current design of async in <future>.  This is a new design, based on my new understanding, which has been confirmed on the lwg mailing list.  The summary is that ~future() (and ~shared_future()) will block when they are created from within async, and the thread hasn't finished yet.  As part of this work I created two new type traits:  __invokable<F, Args...>::value and __invoke_of<F, Args...>::type.  These are what result_of<F(Args...)> wanted to be when it grew up, but never will be. __invoke_of is carefully crafted so that it can serve as its own enable_if (type doesn't exist if the signature isn't invokable).  All of this work is C++11 only.
      
      llvm-svn: 131639
      ec0810e1
  20. May 16, 2011
  21. Jan 12, 2011
  22. Nov 20, 2010
  23. Nov 16, 2010
  24. Sep 22, 2010
  25. Sep 05, 2010
  26. Aug 22, 2010
  27. May 11, 2010
Loading