On 08/17/2011 10:37 AM, Blue Swirl wrote:
>  I would agree (just did it for fun and to see how it looks like), but
>  perhaps we can do something similar to what Windows does for OpenBSD too.
>
>  Though I'm quite disappointed and I must say OpenBSD should enter the 21st
>  century.

I can't justify their design decisions, but isn't __thread a
non-standard extension by GCC anyway whereas POSIX threads are the
standard? Are other compilers supporting it?

Visual C++ supports __declspec(thread).

pthread TLS is orders of magnitudes slower than __thread. __thread in an executable is just as fast as a non-TLS variable access, 2 or 3 machine language instructions at most.

Some pthread_getspecific implementation do a _linear walk_ of the keys. In that case it may work to have something like Windows plus a single pthread_getspecific key. On the other hand, Windows provides very good support for that thanks to its ordered subsections (.tls$something). It only needs a bit of preprocessor magic. Thinks such as linker scripts would be way out of scope.

Paolo

Reply via email to