* Thomas Rodgers:

> +      static __gthread_t
> +      _S_get_tid() noexcept
> +      {
> +#ifdef __GLIBC__
> +     // For the GNU C library pthread_self() is usable without linking to
> +     // libpthread.so but returns 0, so we cannot use it in single-threaded
> +     // programs, because this_thread::get_id() != thread::id{} must be true.
> +     // We know that pthread_t is an integral type in the GNU C library.
> +     if (!__gthread_active_p())
> +       return 1;
> +#endif
> +     return __gthread_self();
> +      }

This comment seems outdated or incomplete.  pthread_self returns a
proper pointer since glibc 2.27, I believe.

I'm also not sure how the difference is observable for the libstdc++
implementation.  Late loading of libpthread isn't quite supported.

Reply via email to