NVIDIA and TLS

Gareth Hughes gareth at nvidia.com
Wed Jun 18 13:09:24 PDT 2003


On Wed, 18 Jun 2003, Daniel Eischen wrote:
> 
> On Sat, 14 Jun 2003, Andy Ritger wrote:
> > The current NVIDIA FreeBSD driver only supports one threading library
> > on FreeBSD for thread-safe, multi-threaded OpenGL applications: the
> > FreeBSD port of linux-threads. The NVIDIA FreeBSD OpenGL driver uses
> > both the i386_set_ldt system call and %gs to support high performance
> > native OpenGL applications.
> 
> One question.  How does using %gs work in libc_r?  Thread switches
> in libc_r use setjmp()/longjmp() neither of which save and restore
> %gs.  If OpenGL sets %gs, libc_r will not change it when threads are
> switched.  
> 
> Is NVIDIA's OpenGL suppose to be thread-safe for libc_r?  I don't
> see how it can be.  What am I missing?

To quote the quote from Andy you used:

The current NVIDIA FreeBSD driver only supports one threading library
on FreeBSD for thread-safe, multi-threaded OpenGL applications: the
FreeBSD port of linux-threads.

-- 
Gareth Hughes (gareth at nvidia.com)
OpenGL Developer, NVIDIA Corporation


More information about the freebsd-threads mailing list