[Mesa-dev] [PATCHv2 04/13] glsl: protect anonymous struct id with a mutex
Kenneth Graunke
kenneth at whitecape.org
Wed Aug 13 13:10:40 PDT 2014
On Wednesday, August 13, 2014 12:03:10 PM Ian Romanick wrote:
> On 07/09/2014 12:47 AM, Chia-I Wu wrote:
> > There may be two contexts compiling shaders at the same time, and we want the
> > anonymous struct id to be globally unique.
> >
> > Signed-off-by: Chia-I Wu <olv at lunarg.com>
> > ---
> > src/glsl/glsl_parser_extras.cpp | 10 ++++++++--
> > 1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> > index b327c2b..ad31469 100644
> > --- a/src/glsl/glsl_parser_extras.cpp
> > +++ b/src/glsl/glsl_parser_extras.cpp
> > @@ -1347,9 +1347,15 @@ ast_struct_specifier::ast_struct_specifier(const char *identifier,
> > ast_declarator_list *declarator_list)
> > {
> > if (identifier == NULL) {
> > + static mtx_t mutex = _MTX_INITIALIZER_NP;
> > static unsigned anon_count = 1;
> > - identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count);
> > - anon_count++;
> > + unsigned count;
> > +
> > + mtx_lock(&mutex);
> > + count = anon_count++;
> > + mtx_unlock(&mutex);
>
> My previous feedback on this was to try and use some sort of atomic
> counter when available. I'm not excited about the performance hit of
> taking a lock here. Although, this probably isn't hit too much. After
> this lands, can you submit an enhancement bug for this issue?
Yeah, I don't think this is hit often at all...
--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140813/9ef76742/attachment.sig>
More information about the mesa-dev
mailing list