diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 43 | 
1 files changed, 41 insertions, 2 deletions
| @@ -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
  --------------
 | 
