>>>>> "Jonathan" == Jonathan Wakely <jwak...@redhat.com> writes:
Jonathan> Here's a slightly more conservative version of the patch. This moves Jonathan> std::thread and this_thread::get_id() and this_thread::yield() to a Jonathan> new header, and makes *most* of std::thread defined without gthreads Jonathan> (because we need the nested thread::id type to be returned from Jonathan> this_thread::get_id()). But it doesn't declare the std::thread Jonathan> constructor that creates new threads. ... Jonathan> Both this and the previous patch require some GDB changes, because GDB Jonathan> currently assumes that if std::thread is declared in <thread> that it Jonathan> is usable and multiple threads are supported. That's no longer true, Jonathan> because we would declare a useless std::thread after this patch. Tom Jonathan> Tromey has patches to make GDB handle this though. It turns out that with this approach, there's nothing to do in gdb, because luckily the configure check looks to see if the constructor is usable: AC_CACHE_CHECK([for std::thread], gdb_cv_cxx_std_thread, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include <thread> void callback() { }]], [[std::thread t(callback);]])], I will probably still check in the patch to catch system_error when starting a thread, though. thanks, Tom