Brian Paul pisze: > José Fonseca wrote: > >> OneTimeLock protects one time initializations and is instantiated with >> _glthread_DECLARE_STATIC_MUTEX, an used without ever calling >> _glthread_INIT_MUTEX or _glthread_DESTROY_MUTEX. >> >> This is non portable, especially on Windows, where locks must be >> initialized before using, so it ends up defining >> _glthread_DECLARE_STATIC_MUTEX without the static keyword in order to >> initialize it from somewhere else. ugh >> >> And if the OneTimeLock has to be initialized one time before it is used >> there is not much point for it to exist in the first place. >> >> Is there any reason to not simply have an one time Mesa initialization >> function, which must be called before creating a Mesa context? >> >> If a Mesa driver does not have a single initialization point, then let >> it create its own lock to protect the call of this mesa one time >> initialization function. >> > > Actually, if you want to remove OneTimeLock entirely, I don't think it'd > be a problem. I don't think there's anything in one_time_init() that > would fail if two threads called it at the same time. > > And if you *do* want to keep OneTimeLock in place, there is a way on Windows to implement it with STATIC_MUTEX semantics.
You need this: http://msdn.microsoft.com/en-us/library/ms683560(VS.85).aspx ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev