<div dir="ltr"><div><div><div><div>I just sent a wannabe patch for this issue.<br>I did not test on clang/linux, but I expect it to work in that environment as well.<br></div>Can you confirm this?<br><br></div>TY<br></div>
Andrea<br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Oct 9, 2013 at 5:46 PM, Siarhei Siamashka <span dir="ltr"><<a href="mailto:siarhei.siamashka@gmail.com" target="_blank">siarhei.siamashka@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 09 Oct 2013 17:27:16 +0200<br>
<div><div class="h5"><a href="mailto:sandmann@cs.au.dk">sandmann@cs.au.dk</a> (Søren Sandmann) wrote:<br>
<br>
> Siarhei Siamashka <<a href="mailto:siarhei.siamashka@gmail.com">siarhei.siamashka@gmail.com</a>> writes:<br>
><br>
> > On Wed, 09 Oct 2013 17:06:06 +0200<br>
> > <a href="mailto:sandmann@cs.au.dk">sandmann@cs.au.dk</a> (Søren Sandmann) wrote:<br>
> ><br>
> >> Andrea Canciani <<a href="mailto:ranma42@gmail.com">ranma42@gmail.com</a>> writes:<br>
> >><br>
> >> > Sorry, I didn't realize it beforehand, but I just noticed that thread-test<br>
> >> > fails on MacOS.<br>
> >> > This happens because it relies on the availability of OpenMP to have a<br>
> >> > thread-local state for the prng.<br>
> >> > Would it be ok to have each thread explicitly keep the state of its prng or<br>
> >> > is this another element that the test is supposed to be checking?<br>
> >><br>
> >> It's not intended to test the thread-private-ness of the prng states, so<br>
> >> yes, the simplest fix seems to be to just explicitly keep a prng_t<br>
> >> for each thread.<br>
> ><br>
> > Would it really help to pass the test? The fast path cache is using the<br>
> > thread-local storage too.<br>
><br>
> But the fast path cache is using the PIXMAN_DEFINE_THREAD_LOCAL macro<br>
> that uses pthread_setspecific() on Mac OS. I suppose it would make sense<br>
> to use that macro in thread_test as well, just to make sure it works.<br>
<br>
</div></div>OK, this is a bit messy. The prng code is only compatible with OpenMP<br>
threads while the thread-test is using pthreads. It also fails with<br>
clang in Linux.<br>
<br>
Explicitly keeping a prng_t for each thread would be indeed a good<br>
solution. It also very likely is going to have a lower overhead.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Best regards,<br>
Siarhei Siamashka<br>
</div></div></blockquote></div><br></div>