[patch libstdc++] Optimize synchronization in std::future if futexes are available.
Jonathan Wakely
jwakely@redhat.com
Sun Jan 18 15:32:00 GMT 2015
On 17/01/15 19:51 -0700, Sandra Loosemore wrote:
>On 01/17/2015 03:58 PM, Jonathan Wakely wrote:
>>
>>My fault, this additional chunk is needed alongside the patch I sent
>>earlier:
>>
>>--- a/libstdc++-v3/include/bits/atomic_futex.h
>>+++ b/libstdc++-v3/include/bits/atomic_futex.h
>>@@ -35,7 +35,7 @@
>>#include <bits/c++config.h>
>>#include <atomic>
>>#include <chrono>
>>-#if !defined(_GLIBCXX_HAVE_LINUX_FUTEX)
>>+#if ! (defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1)
>>#include <mutex>
>>#include <condition_variable>
>>#endif
>>
>>What I sent earlier causes your target to use std::mutex and
>>std::condition_variable, but without the bit above the headers aren't
>>included.
>
>Still no joy:
>/scratch/sandra/arm-fsf2/src/gcc-mainline/libstdc++-v3/src/c++11/futex.cc:45:3:
>error: '__atomic_futex_unsigned_base' has not been declared
> __atomic_futex_unsigned_base::_M_futex_wait_until(unsigned *__addr,
> ^
>/scratch/sandra/arm-fsf2/src/gcc-mainline/libstdc++-v3/src/c++11/futex.cc:88:3:
>error: '__atomic_futex_unsigned_base' has not been declared
> __atomic_futex_unsigned_base::_M_futex_notify_all(unsigned* __addr)
> ^
futex.cc needs the same change ...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 449 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150118/6ca002ca/attachment.bin>
More information about the Gcc-patches
mailing list