Correct a couple of minor documentation typos.
This commit is contained in:
parent
afcab24230
commit
6115e72c75
|
@ -238,7 +238,7 @@ if (res != ERROR_SUCCESS) return res;
|
||||||
thread. On recent versions of Linux the __thread keyword
|
thread. On recent versions of Linux the __thread keyword
|
||||||
provides a convenient interface to this functionality - a
|
provides a convenient interface to this functionality - a
|
||||||
more portable API is exposed in the pthread
|
more portable API is exposed in the pthread
|
||||||
library. However, these facilities is not used by Wine,
|
library. However, these facilities are not used by Wine,
|
||||||
rather, we implement Win32 TLS entirely ourselves.
|
rather, we implement Win32 TLS entirely ourselves.
|
||||||
</para>
|
</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
@ -295,13 +295,13 @@ if (res != ERROR_SUCCESS) return res;
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Let's start with a bit of history. Back in the dark ages
|
Let's start with a bit of history. Back in the dark ages
|
||||||
when Wines threading support was first implemented a
|
when Wine's threading support was first implemented a
|
||||||
problem was faced - Windows had much more capable
|
problem was faced - Windows had much more capable
|
||||||
threading APIs than Linux did. This presented a problem -
|
threading APIs than Linux did. This presented a problem -
|
||||||
Wine works either by reimplementing an API entirely or by
|
Wine works either by reimplementing an API entirely or by
|
||||||
mapping it onto the underlying systems equivalent. How
|
mapping it onto the underlying systems equivalent. How
|
||||||
could Win32 threading be implemented using a library which
|
could Win32 threading be implemented using a library which
|
||||||
did not have all the neeed features? The answer, of
|
did not have all the needed features? The answer, of
|
||||||
course, was that it couldn't be.
|
course, was that it couldn't be.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -338,14 +338,14 @@ if (res != ERROR_SUCCESS) return res;
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The solution was simple yet ingenius: Wine would provide
|
The solution was simple yet ingenious: Wine would provide
|
||||||
its own implementation of the pthread library
|
its own implementation of the pthread library
|
||||||
<emphasis>inside</emphasis> its own binary. Due to the
|
<emphasis>inside</emphasis> its own binary. Due to the
|
||||||
semantics of ELF symbol scoping, this would cause Wines
|
semantics of ELF symbol scoping, this would cause Wine's
|
||||||
own implementations to override any implementation loaded
|
own implementation to override any implementation loaded
|
||||||
later on (like the real libpthread.so). Therefore, any
|
later on (like the real libpthread.so). Therefore, any
|
||||||
calls to the pthread APIs in external libraries would be
|
calls to the pthread APIs in external libraries would be
|
||||||
linked to Wines instead of the systems pthreads library,
|
linked to Wine's instead of the system's pthreads library,
|
||||||
and Wine implemented pthreads by using the standard
|
and Wine implemented pthreads by using the standard
|
||||||
Windows threading APIs it in turn implemented itself.
|
Windows threading APIs it in turn implemented itself.
|
||||||
</para>
|
</para>
|
||||||
|
@ -366,7 +366,7 @@ if (res != ERROR_SUCCESS) return res;
|
||||||
<para>
|
<para>
|
||||||
The fake pthread implementation can be found in
|
The fake pthread implementation can be found in
|
||||||
<filename>loader/kthread.c</filename>, which is used to
|
<filename>loader/kthread.c</filename>, which is used to
|
||||||
produce to wine-kthread binary. In contrast,
|
produce the wine-kthread binary. In contrast,
|
||||||
loader/pthread.c produces the wine-pthread binary which is
|
loader/pthread.c produces the wine-pthread binary which is
|
||||||
used on newer NPTL systems.
|
used on newer NPTL systems.
|
||||||
</para>
|
</para>
|
||||||
|
|
Loading…
Reference in New Issue