diff options
| author | rpj <rpj> | 2002-01-08 07:22:44 +0000 | 
|---|---|---|
| committer | rpj <rpj> | 2002-01-08 07:22:44 +0000 | 
| commit | 0fee04f5eb2d9c1c484281afbc2b24278567a179 (patch) | |
| tree | e4ea10b70533423f7a814dea5bb120437f2b990b | |
| parent | 5f7ea668d6d4c96d9e0efea21ac5e300fda552ad (diff) | |
Update docs.
| -rw-r--r-- | ANNOUNCE | 23 | ||||
| -rw-r--r-- | README | 43 | 
2 files changed, 53 insertions, 13 deletions
| @@ -16,7 +16,7 @@ Parts of the implementation also comply with the Open Group's  Single Unix specification for compatibility with major Unix
  implementations and Linux.
 -Pthreads-win32 is free software, distributed under the GNU Library
 +Pthreads-win32 is free software, distributed under the GNU Lesser
  General Public License (LGPL).
  Please see the 'Acknowledgements' section at the end of this
 @@ -29,13 +29,14 @@ Changes since the last snapshot  platform dependence
  -------------------
 -As Win9x doesn't provide one, the library now contains
 -it's own InterlockedCompareExchange() routine. It is used to
 -implement spinlocks and barriers, and also in mutexes.
 +As Win95 doesn't provide one, the library now contains
 +it's own InterlockedCompareExchange() routine, which is used
 +whenever Windows doesn't provide it. InterlockedCompareExchange()
 +is used to implement spinlocks and barriers, and also in mutexes.
  This routine relies on the CMPXCHG machine instruction which
 -is only available in i486 or above CPUs. This library
 -(from snapshot 20010712 onwards) therefore no longer runs on
 -i386 platforms.
 +is not available on i386 CPUs. This library (from snapshot
 +20010712 onwards) is therefore no longer supported on i386
 +processor platforms.
  rwlocks
  -------
 @@ -55,10 +56,10 @@ pthread_mutex_lock;  The behaviour of pthread_mutex_trylock in relation to
  recursive mutexes was inconsistent with commercial implementations.
 -Trylock would return EBUSY if the lock was owned already
 -regardless of mutex type. Trylock now increments the recursion
 -count and returns 0 for RECURSIVE mutexes, and will now return
 -EDEADLCK instead of EBUSY for ERRORCHECK mutexes. This is
 +Trylock would return EBUSY if the lock was owned already by the
 +calling thread regardless of mutex type. Trylock now increments the
 +recursion count and returns 0 for RECURSIVE mutexes, and will
 +return EDEADLK rather than EBUSY for ERRORCHECK mutexes. This is
  consistent with Solaris.
  - Thomas Pfaff <tpfaff@gmx.net>
 @@ -1,9 +1,10 @@  PTHREADS-WIN32
  ==============
 -Pthreads-win32 is free software, distributed under the GNU Library
 +Pthreads-win32 is free software, distributed under the GNU Lesser
  General Public License (LGPL). See the file 'COPYING.LIB' for terms
 -and conditions.
 +and conditions. Also see the file 'COPYING' for information
 +specific to pthreads-win32, copyrights and the LGPL.
  What is it?
 @@ -21,6 +22,44 @@ See the file "ANNOUNCE" for more information including standards  conformance details and list of supported routines.
 +Which of the several dll versions to use?
 +-----------------------------------------
 +or, What are all these pthread*.dll files?
 +------------------------------------------
 +
 +Simply, you only use one of them, but you need to choose carefully.
 +
 +The most important choice you need to make is whether to use a
 +version that uses exceptions internally, or not (there are versions
 +of the library that use exceptions as part of the thread
 +cancelation and exit implementation, and one that uses
 +setjmp/longjmp instead).
 +
 +There is some contension amongst POSIX threads experts as
 +to how POSIX threads cancelation and exit should work
 +with languages that include exceptions and handlers, e.g.
 +C++ and even C (Microsoft's Structured Exceptions).
 +
 +The issue is: should cancelation of a thread in a, say,
 +C++ application cause object destructors and C++ exception
 +handlers to be invoked as the stack unwinds during thread
 +exit, or not?
 +
 +Your choice will depend primarily on whether your application
 +is intended to be cross-platform or not, and how the POSIX threads
 +implementations on the target platforms handle this issue. That is,
 +you'll want consistent behaviour.
 +
 +If you can't choose now, it's probably best to use the
 +standard C version of the library, even if your application
 +is being written in C++. You will need to handle the
 +potentially adverse effects of thread cancelation in your
 +code, but at least you will have the best chance of
 +consistency of behaviour across platforms. If you later
 +decide to use an exception handling version of the library
 +then you will hopefully have fewer, if any, changes to make.
 +
 +
  Library naming
  --------------
 | 
