[committed] libstdc++: Make Networking TS work without gthreads [PR 89760]

Jonathan Wakely jwakely@redhat.com
Tue Aug 11 16:04:11 GMT 2020

On 11/08/20 16:38 +0100, Jonathan Wakely wrote:
>Make the experimental Networking TS code work without std::mutex and
>	PR libstdc++/89760
>	* include/experimental/executor [!_GLIBCXX_HAS_GTHREADS]:
>	(execution_context::mutex_type): Define dummy mutex type.
>	(system_context): Use execution_context::mutex_type.
>	(system_context) [!_GLIBCXX_HAS_GTHREADS]: Define dummy
>	thread and condition variable types.
>	[!_GLIBCXX_HAS_GTHREADS] (system_context::_M_run()): Do not
>	define.
>	(system_context::_M_post) [!_GLIBCXX_HAS_GTHREADS]: Throw
>	an exception when threads aren't available.
>	(strand::running_in_this_thread()): Defer to _M_state.
>	(strand::_State::running_in_this_thread()): New function.
>	(use_future_t): Do not depend on _GLIBCXX_USE_C99_STDINT_TR1.
>	* include/experimental/io_context (io_context): Use the
>	execution_context::mutex_type alias. Replace stack of thread
>	IDs with counter.
>	* testsuite/experimental/net/execution_context/use_service.cc:
>	Enable test for non-pthread targets.

For the branches I'm just making the tests depend on gthreads.

Tested x86_64-linux, with both --enable-threads and --disable-threads.
Committed to trunk.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 8564 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20200811/b627dae6/attachment.bin>

More information about the Gcc-patches mailing list