This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] fix libstdc++/57641


On 18 June 2013 23:55, Jonathan Wakely wrote:
> Instead of fixing the bug three times I refactored the try_lock_xxx
> functions into a mixin template and used that in the various timed
> mutexes.
>
>         PR libstdc++/57641
>         * include/std/mutex (timed_mutex, recursive_timed_mutex): Move common
>         functionality to new __timed_mutex_impl mixin. Overload try_lock_until
>         to handle conversion between different clocks. Replace constrained
>         __try_lock_for_impl overloads with conditional increment.
>         * include/std/shared_mutex (shared_mutex::_Mutex): Use the new mixin.
>         * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: New.
>
> Tested x86_64-linux, committed to trunk.

I've committed a less invasive version of this patch (without the
refactoring to add a new base class) to the 4.8 branch. Tested
x86_64-linux.

        PR libstdc++/57641
        * include/std/mutex (timed_mutex, recursive_timed_mutex): Add
        overloaded _M_try_lock_until to handle conversion between different
        clocks. Replace constrained __try_lock_for_impl overloads with
        conditional increment.
        * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: New.

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]