----- Original Message ----- > On 03/14/2013 05:10 PM, Jose Fonseca wrote: > > Mesa source tree currently has 4 abstraction of threading primitives (in > > gallium, glapi, mapi, and egl components). > > > > I'd like to unify all them, and since now the C11 standard introduced a > > threads.h header, I'd like to use that as model. > > > > So for I've imported a C11 threads.h implementation from > > https://gist.github.com/yohhoy/2223710 , and reimplemented all > > > > http://cgit.freedesktop.org/~jrfonseca/mesa/log/?h=c11-threads > > > > If there are no objections, the next step would be to eliminate all > > threading abstractions and just use C11 threads.h primitives. > > > > The only snafu is the wide spread use of static mutex initializers. It's > > not supported by C11 threads -- I believe one needs to do the > > initialization via once_init paradigm instead. But for now I just side > > stepped the problem by defining a non standard initializer. I'll revisit > > this later. > > > > A nice side-benefit of this is that the pre-vista Win32 conditional var > > implement should be much better than what we have now, which should speed > > up multithreaded llvmpipe on windows substantially. > > > > The same principle could be applied to atomic operations. > > This looks OK to me.
Thanks. > Could we eventually go a step further and replace _EGLMutex, > pipe_mutex, u_mutex, etc. with mtx_t (and similar with thrd_t, cnd_t, > etc)? Definitely. That would be my next step. Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev