NTPL & pthreads locks

Gavriel State gav at transgaming.com
Mon Apr 21 01:14:06 CDT 2003


Dan Kegel wrote:
> Alexandre Julliard wrote:
> 
>> I don't think we can implement Win32 primitives on top of pthreads, at
>> least not in a reasonable way. We may be able to do it on top of the
>> raw kernel futexes, but that's not exactly libc integration (and it
>> will most likely require new kernel features too). And the only reason
>> for doing that would be performance, it's certainly not going to make
>> things more intuitive or more solid.
> 
> 
> Somebody begs to differ.  From
> http://downloads.transgaming.com/files/winex-3_0_releasenotes.txt :
> 
>    * The core threading model has moved to pthreads to decouple WineX from
>      the continuing changes to certain core system libraries.
> 
> If Gav can do it, why can't we? :-)
> - Dan

We did not implement Win32 primitives on top of pthreads in WineX 3.0.
We simply extended our previous pthreads work to support glibc 2.3.2 and
NPTL, just as Alexandre was forced to for Wine.  I still believe that
for performance, ShmServer is the most direct way to go to improve
Win32 primitives for now.  I have yet to see any good arguments as to
why it should not at least be a user-selectable option.

Our pthreads code will be making it into ReWind once we've had some
time to catch our breaths.  Currently it's not even in WineX SF CVS due
to intermingling with our copy protection code.

According to Peter Hunnisett, there may be a few things that our new
pthreads code catches that Alexandre's similar code does not, but
I'm not the expert on this.  Peter, perhaps you can fill Alexandre
in on the high level details, pending the patch going into ReWind.

Take care,
  -Gav

-- 
Gavriel State, CEO & CTO
TransGaming Technologies Inc.
gav at transgaming.com
http://www.transgaming.com/

Let the games begin





More information about the wine-devel mailing list