diff options
author | dartraiden <wowemuh@gmail.com> | 2021-06-06 22:37:40 +0300 |
---|---|---|
committer | dartraiden <wowemuh@gmail.com> | 2021-06-06 22:37:40 +0300 |
commit | a3aa7b7d951120525ed510e8da0fcdf58e6beb54 (patch) | |
tree | aa0a5294709fe4518915539b62287cd93ca12bd2 | |
parent | b18dd79bc6b6ee3658ef4513665cb84c24030368 (diff) |
Also update docs
-rw-r--r-- | libs/pthreads/docs/CONTRIBUTORS | 27 | ||||
-rw-r--r-- | libs/pthreads/docs/COPYING | 71 | ||||
-rw-r--r-- | libs/pthreads/docs/NEWS | 327 |
3 files changed, 337 insertions, 88 deletions
diff --git a/libs/pthreads/docs/CONTRIBUTORS b/libs/pthreads/docs/CONTRIBUTORS index da31ff266c..a2541852e8 100644 --- a/libs/pthreads/docs/CONTRIBUTORS +++ b/libs/pthreads/docs/CONTRIBUTORS @@ -17,10 +17,9 @@ Ross Johnson Ross dot Johnson at dot homemail dot com dot au testsuite. Robert Colquhoun rjc at trump dot net dot au Early bug fixes. -John E. Bossom John dot Bossom at cognos dot com +John E. Bossom john dot bossom at gmail dot com Contributed substantial original working implementation; bug fixes; - ongoing guidance and standards interpretation. Anders Norlander anorland at hem2 dot passagen dot se Early enhancements and runtime checking for supported Win32 routines. @@ -55,7 +54,7 @@ Rich Peters rpeters at micro-magic dot com Todd Owen towen at lucidcalm dot dropbear dot id dot au Bug fixes to dll loading. Jason Nye jnye at nbnet dot nb dot ca - Implementation of async cancelation. + Implementation of async cancellation. Fred Forester fforest at eticomm dot net Kevin D. Clark kclark at cabletron dot com David Baggett dmb at itasoftware dot com @@ -77,7 +76,7 @@ Alexander Terekhov TEREKHOV at de dot ibm dot com enhancements to mutexes; new mutex implementation in 'futex' style; suggested a robust implementation of pthread_once - similar to that implemented by V.Kliathcko; + using a named mutex; system clock change handling re CV timeouts; bug fixes. Thomas Pfaff tpfaff at gmx dot net @@ -85,16 +84,16 @@ Thomas Pfaff tpfaff at gmx dot net re-implemented mutex routines to avoid Win32 mutexes and TryEnterCriticalSection; procedure to fix Mingw32 thread-safety issues. -Franco Bez franco dot bez at gmx dot de +Franco Bez franco dot bez at gmx dot de procedure to fix Mingw32 thread-safety issues. Louis Thomas lthomas at arbitrade dot com (with Alexander Terekhov) re-implemented and improved condition variables. -David Korn dgk at research dot att dot com +David Korn dgk at research dot att dot com Ported to UWIN. Phil Frisbie, Jr. phil at hawksoft dot com Bug fix. -Ralf Brese Ralf dot Brese at pdb4 dot siemens dot de +Ralf Brese Ralf dot Brese at pdb4 dot siemens dot de Bug fix. prionx at juno dot com prionx at juno dot com Bug fixes. @@ -103,7 +102,7 @@ Max Woodbury mtew at cds dot duke dot edu reduced namespace pollution; idea to separate routines to reduce statically linked image sizes. -Rob Fanner rfanner at stonethree dot com +Rob Fanner rfanner at stonethree dot com Bug fix. Michael Johnson michaelj at maine dot rr dot com Bug fix. @@ -111,15 +110,15 @@ Nicolas Barry boozai at yahoo dot com Bug fixes. Piet van Bruggen pietvb at newbridges dot nl Bug fix. -Makoto Kato raven at oldskool dot jp +Makoto Kato raven at oldskool dot jp AMD64 port. Panagiotis E. Hadjidoukas peh at hpclab dot ceid dot upatras dot gr phadjido at cs dot uoi dot gr Contributed the QueueUserAPCEx package which - makes preemptive async cancelation possible. -Will Bryant will dot bryant at ecosm dot com + makes preemptive async cancellation possible. +Will Bryant will dot bryant at ecosm dot com Borland compiler patch and makefile. -Anuj Goyal anuj dot goyal at gmail dot com +Anuj Goyal anuj dot goyal at gmail dot com Port to Digital Mars compiler. Gottlob Frege gottlobfrege at gmail dot com re-implemented pthread_once (version 2) @@ -131,10 +130,10 @@ Vladimir Kliatchko vladimir at kliatchko dot com Ramiro Polla ramiro.polla at gmail dot com static library auto init/cleanup on application start/exit via RT hooks (MSC and GCC compilers only). -Daniel Richard G. skunk at iSKUNK dot org +Daniel Richard G. skunk at iSKUNK dot org Patches and cleanups for x86 and x64, particularly across a range of MS build environments. -John Kamp john dot kamp at globalgraphics dot com +John Kamp john dot kamp at globalgraphics dot com Patches to fix various problems on x64; brutal testing particularly using high memory run environments. diff --git a/libs/pthreads/docs/COPYING b/libs/pthreads/docs/COPYING index 5cfea0d0ed..657c4e1814 100644 --- a/libs/pthreads/docs/COPYING +++ b/libs/pthreads/docs/COPYING @@ -1,4 +1,4 @@ - pthreads-win32 - a POSIX threads library for Microsoft Windows + Pthreads4w - a POSIX threads library for Microsoft Windows This file is Copyrighted @@ -6,36 +6,36 @@ This file is Copyrighted This file is covered under the following Copyright: - Copyright (C) 2001,2006 Ross P. Johnson + Copyright (C) 2001-2017 Ross P. Johnson All rights reserved. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -Pthreads-win32 is covered by the GNU Lesser General Public License +Pthreads4w is covered by the GNU Lesser General Public License ------------------------------------------------------------------ - Pthreads-win32 is open software; you can redistribute it and/or + Pthreads4w is open software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License - as published by the Free Software Foundation version 2.1 of the + as published by the Free Software Foundation version 3 of the License. - Pthreads-win32 is several binary link libraries, several modules, + Pthreads4w is several binary link libraries, several modules, associated interface definition files and scripts used to control its compilation and installation. - Pthreads-win32 is distributed in the hope that it will be useful, + Pthreads4w is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed with - pthreads-win32 under the filename: + Pthreads4w under the filename: - COPYING.LIB + COPYING.FSF - You should have received a copy of the version 2.1 GNU Lesser General - Public License with pthreads-win32; if not, write to: + You should have received a copy of the version 3 GNU Lesser General + Public License with Pthreads4w; if not, write to: Free Software Foundation, Inc. 59 Temple Place @@ -43,30 +43,30 @@ Pthreads-win32 is covered by the GNU Lesser General Public License Boston, MA 02111-1307 USA - The contact addresses for pthreads-win32 is as follows: + The contact addresses for Pthreads4w is as follows: - Web: http://sources.redhat.com/pthreads-win32 + Homepage: http://sourceforge.net/projects/pthreads4w/ Email: Ross Johnson Please use: Firstname.Lastname@homemail.com.au -Pthreads-win32 copyrights and exception files +Pthreads4w copyrights and exception files --------------------------------------------- - With the exception of the files listed below, Pthreads-win32 + With the exception of the files listed below, Pthreads4w is covered under the following GNU Lesser General Public License Copyrights: - Pthreads-win32 - POSIX Threads Library for Win32 + Pthreads4w - POSIX Threads Library for Win32 Copyright(C) 1998 John E. Bossom - Copyright(C) 1999,2006 Pthreads-win32 contributors + Copyright(C) 1999,2017 Pthreads4w contributors The current list of contributors is contained in the file CONTRIBUTORS included with the source code distribution. The current list of CONTRIBUTORS can also be seen at the following WWW location: - http://sources.redhat.com/pthreads-win32/contributors.html + https://sourceforge.net/projects/pthreads4w//contributors.html Contact Email: Ross Johnson Please use: Firstname.Lastname@homemail.com.au @@ -74,21 +74,23 @@ Pthreads-win32 copyrights and exception files These files are not covered under one of the Copyrights listed above: COPYING - COPYING.LIB + COPYING.FSF tests/rwlock7.c + tests/rwlock8.c + tests/threestage.c This file, COPYING, is distributed under the Copyright found at the top of this file. It is important to note that you may distribute verbatim copies of this file but you may not modify this file. - The file COPYING.LIB, which contains a copy of the version 2.1 + The file COPYING.FSF, which contains a copy of the version 3 GNU Lesser General Public License, is itself copyrighted by the Free Software Foundation, Inc. Please note that the Free Software - Foundation, Inc. does NOT have a copyright over Pthreads-win32, - only the COPYING.LIB that is supplied with pthreads-win32. + Foundation, Inc. does NOT have a copyright over Pthreads4w, + only the COPYING.FSF that is supplied with Pthreads4w. - The file tests/rwlock7.c is derived from code written by - Dave Butenhof for his book 'Programming With POSIX(R) Threads'. + The file tests/rwlock7.c and tests/rwlock8.c are derived from code + written by Dave Butenhof for his book 'Programming With POSIX(R) Threads'. The original code was obtained by free download from his website http://home.earthlink.net/~anneart/family/Threads/source.html and did not contain a copyright or author notice. It is assumed to @@ -96,8 +98,7 @@ Pthreads-win32 copyrights and exception files In all cases one may use and distribute these exception files freely. And because one may freely distribute the LGPL covered files, the - entire pthreads-win32 source may be freely used and distributed. - + entire Pthreads4w source may be freely used and distributed. General Copyleft and License info @@ -113,10 +114,10 @@ General Copyleft and License info http://www.gnu.org/copyleft/lesser.txt -Why pthreads-win32 did not use the GNU General Public License -------------------------------------------------------------- +Why Pthreads4w did not use the GNU Lesser General Public License +-------------------------------------------------------------------- - The goal of the pthreads-win32 project has been to + The goal of the Pthreads4w project has been to provide a quality and complete implementation of the POSIX threads API for Microsoft Windows within the limits imposed by virtue of it being a stand-alone library and not @@ -124,25 +125,25 @@ Why pthreads-win32 did not use the GNU General Public License example, some functions and features, such as those based on POSIX signals, are missing. - Pthreads-win32 is a library, available in several different + Pthreads4w is a library, available in several different versions depending on supported compilers, and may be used as a dynamically linked module or a statically linked set of binary modules. It is not an application on it's own. - It was fully intended that pthreads-win32 be usable with + It was fully intended that Pthreads4w be usable with commercial software not covered by either the GPL or the LGPL - licenses. Pthreads-win32 has many contributors to it's + licenses. Pthreads4w has many contributors to it's code base, many of whom have done so because they have used the library in commercial or proprietry software projects. - Releasing pthreads-win32 under the LGPL ensures that the + Releasing Pthreads4w under the LGPL ensures that the library can be used widely, while at the same time ensures - that bug fixes and improvements to the pthreads-win32 code + that bug fixes and improvements to the Pthreads4w code itself is returned to benefit all current and future users of the library. - Although pthreads-win32 makes it possible for applications + Although Pthreads4w makes it possible for applications that use POSIX threads to be ported to Win32 platforms, the broader goal of the project is to encourage the use of open standards, and in particular, to make it just a little easier diff --git a/libs/pthreads/docs/NEWS b/libs/pthreads/docs/NEWS index d1b789635f..642d3cd25d 100644 --- a/libs/pthreads/docs/NEWS +++ b/libs/pthreads/docs/NEWS @@ -1,12 +1,261 @@ -RELEASE 2.9.0 +RELEASE 2.11.0 +-------------- +(2018-08-08) + +General +------- +New bug fixes in all releases since 2.8.0 have NOT been applied to the +1.x.x series. + +Some changes from 2011-02-26 onward may not be compatible with +pre Windows 2000 systems. + +License Change to LGPL v3 +------------------------- +Pthreads4w version 2.11 and all future 2.x versions will be released +under the Lesser GNU Public License version 3 (LGPLv3). + +Planned Release Under the Apache License v2 +------------------------------------------- +The next major version of this software (version 3) will be released +under the Apache License version 2.0 (ALv2). Releasing 2.11 under LGPLv3 +will allow modifications to version 3 of this software to be backported +to version 2 going forward. Further to this, any GPL projects currently +using this library will be able to continue to use either version 2 or 3 +of this code in their projects. + +For more information please see: +https://www.apache.org/licenses/GPL-compatibility.html + +In order to remain consistent with this change, from this point on +modifications to this library will only be accepted against version 3 +of this software under the terms of the ALv2. They will then, where +appropriate, be backported to version 2. + +We hope to release version 3 at the same time as we release version 2.11. + +Testing and verification +------------------------ +This version has been tested on SMP architecture (Intel x64 Hex Core) +by completing the included test suite, as well as the stress and bench +tests. + +Be sure to run your builds against the test suite. If you see failures +then please consider how your toolchains might be contributing to the +failure. See the README file for more detailed descriptions of the +toolchains and test systems that we have used to get the tests to pass +successfully. We recommend MinGW64 over MinGW32 for both 64 and 32 bit +GNU CC builds. MinGW64 also includes its own independent pthreads +implementation, which you may prefer to use. + +New Features or Changes +----------------------- +For Microsoft toolchain builds: +(1) Static linking requires both this library and any linking +libraries or applications to be compiled with /MT consistently. + +(2) Static libraries have been renamed as libpthreadV*.lib +to differentiate them from DLL import libs pthreadV*.lib. + +(3) If you are using mixed linkage, e.g. linking the static /MT version +of the library to an application linked with /MD you may be able to use +GetLastError() to interrogate the error code because the library sets +both errno (via _set_errno()) and SetLastError(). + +Bug Fixes +--------- +Remove the attempt to set PTW32_USES_SEPARATE_CRT in the headers which +can cause unexpected results. In certain situations a user may want to +define it explicitly in their environment to invoke it's effects, either +when buidling the library or an application or both. See README.NONPORTABLE. +-- Ross Johnson + +The library should be more reliable under fully statically linked +scenarios. Note: we have removed the PIMAGE_TLS_CALLBACK code and +reverted to the earlier method that appears to be more reliable +across all compiler editions. +- Mark Pizzolato + +Various corrections to GNUmakefile. Although this file has been removed, +for completeness the changes have been recorded as commits to the +repository. +- Kyle Schwarz + +MinGW64-w64 defines pid_t as __int64. sched.h now reflects that. +- Kyle Schwarz + +Several tests have been fixed that were seen to fail on machines under +load. Other tests that used similar crude mechanisms to synchronise +threads (these are unit tests) had the same improvements applied: +semaphore5.c recognises that sem_destroy can legitimately return +EBUSY; mutex6*.c, mutex7*.c and mutex8*.c all replaced a single +Sleep() with a polling loop. +- Ross Johnson + + +RELEASE 2.10.0 +-------------- +(2016-09-18) + +General +------- +New bug fixes in all releases since 2.8.0 have NOT been applied to the +1.x.x series. + +Some changes from 2011-02-26 onward may not be compatible with +pre Windows 2000 systems. + +Testing and verification +------------------------ +This version has been tested on SMP architecture (Intel x64 Hex Core) +by completing the included test suite, as well as the stress and bench +tests. + +Be sure to run your builds against the test suite. If you see failures +then please consider how your toolchains might be contributing to the +failure. See the README file for more detailed descriptions of the +toolchains and test systems that we have used to get the tests to pass +successfully. We recommend MinGW64 over MinGW32 for both 64 and 32 bit +GNU CC builds. MinGW64 also includes its own independent pthreads +implementation, which you may prefer to use. + +New Features +------------ +New routines: +pthread_timedjoin_np() +pthread_tryjoin_np() + - added for compatibility with Linux. +sched_getaffinity() +sched_setaffinity() +pthread_getaffinity_np() +pthread_setaffinity_np() +pthread_attr_getaffinity_np() +pthread_attr_setaffinity_np() + - added for compatibility with Linux and other libgcc-based systems. + The macros to manipulate cpu_set_t objects (the cpu affinity mask + vector) are also defined: CPU_ZERO, CPU_CLR, CPU_SET, CPU_EQUAL, + CPU_AND, CPU_OR, CPU_XOR, CPU_COUNT, CPU_ISSET. +pthread_getname_np() +pthread_setname_np() +pthread_attr_getname_np() +pthread_attr_setname_np() + - added for compatibility with other POSIX implementations. Because + some implementations use different *_setname_np() prototypes + you can define one of the following macros when building the library: + PTW32_COMPATIBILITY_BSD (compatibility with NetBSD, FreeBSD) + PTW32_COMPATIBILITY_TRU64 + If not defined then compatibility is with Linux and other equivalents. + We don't impose a strict limit on the length of the thread name for the + default compatibility case. Unlike Linux, no default thread name is set. + For MSVC builds, the thread name if set is made available for use by the + MSVS debugger, i.e. it should be displayed within the debugger to + identify the thread in place of/as well as a threadID. +pthread_win32_getabstime_np() + - Return the current time plus an optional offset in a platform-aware way + that is compatible with POSIX timed calls (returns the struct timespec + address which is the first argument). Intended primarily to make it + easier to write tests but may be useful for applications generally. +GNU compiler environments (MinGW32 and MinGW64) now have the option of using +autoconf to automatically configure the build. + +Builds: +New makefile targets have been added and existing targets modified or +removed. For example, targets to build and test all of the possible +configurations of both dll and static libs. + +GNU compiler builds are now explicitly using ISO C and C++ 2011 standards +compatibility. If your GNU compiler doesn't support this please consider +updating. Auto configuration is now possible via 'configure' script. The +script must be generated using autoconf - see the README file. Thanks to +Keith Marshall from the MinGW project. + +Static linking: +The autostatic functionality has been moved to dll.c, and extended so +that builds using MSVC8 and later no longer require apps to call +pthread_win32_thread_detach_np(). That is, all of the DllMain +functionality is now automatic for static linking for these builds. + +Some nmake static linking targets have been disabled: +Due to an issue with TLS behaviour, the V*-small-static* nmake targets +in Makefile have been disabled. The issue is exposed by tests/semaphore3.c +where the pthread_self() call inside the thread fails to return the +correct POSIX thread handle but returns a new "implicit" POSIX thread +handle instead. Implicit pthread handles have detached thread status, which +causes the pthread_detach() call inside the thread to return EINVAL. The +V*-static* targets appear to be not affected. The primary difference is +that the latter are generated from a single compilation unit. + +Bug Fixes +--------- +Small object file static linking now works (MinGW). The autostatic code +is required but nothing explicitly referenced this code so was getting +optimised out. +- Daniel Richard G. + +sem_getvalue() could return the errno value instead of setting errno +and returning -1. +- Ross Johnson + +Errno values were being lost if the library is statically linked +with the runtime library, meaning also that the application used a +separate runtime instance. This is still the case except a build +switch has been added that allows more robust error status to be +incorporated, i.e. allow the return code to be retrieved via +GetLastError(). +- Daniel Richard G. + +Identified the cause of significant failures around cancelation +and pthread_exit() for the GCE (GNU C++) build configuration as +coming from Mingw32. Not sure if this is general or just when +building 32 bit libraries and apps that run on 64 bit systems. +These failures do not arise with Mingw64 32 bit builds (GCC built +with multilib enabled) running on 64 bit systems. +- Daniel Richard G. and Ross Johnson + +pthread_key_delete() bug introduced in release 2.9.x caused this +routine to fail in a way that the test suite was not detecting. A +new test has been added to confirm that this routine behaves +correctly, particularly when keys with destructors are deleted +before threads exit. +- Stephane Clairet + +pthread_win32_process_attach_np() fix potential failure/security around +finding and loading of QUSEREX.DLL. +- Jason Baker + +_POSIX_THREAD_ATTR_STACKADDR is now set equal to -1 in pthread.h. As a +consequence pthread_attr_setstackaddr() now returns ENOSYS. Previously +the value was stored and could be retrieved but was otherwise unused. +pthread_attr_getstackaddr() returns ENOSYS correspondingly. +- Ross Johnson + +Fixed a potential memory leak in pthread_mutex_init(). The leak would +only occur if the mutex initialisation failed (extremely rare if ever). +- Jaeeun Choi + +Fixed sub-millisecond timeouts, which caused the library to busy wait. +- Mark Smith + +Fix a race condition and crash in MCS locks. The waiter queue management +code in ptw32_mcs_lock_acquire was racing with the queue management code +in ptw32_mcs_lock_release and causing a segmentation fault. +- Anurag Sharma +- Jonathan Brown (also reported this bug and provided a fix) + +RELEASE 2.9.1 ------------- -(2012-05-25) +(2012-05-27) General ------- New bug fixes in this release since 2.8.0 have NOT been applied to the 1.x.x series. +This release replaces an extremely brief 2.9.0 release and adds +some last minute non-code changes were made to embed better +descriptive properties in the dlls to indicate target architecture +and build environments. + Some changes post 2011-02-26 in CVS may not be compatible with pre Windows 2000 systems. @@ -230,8 +479,8 @@ General The package now includes a reference documentation set consisting of HTML formatted Unix-style manual pages that have been edited for -consistency with Pthreads-w32. The set can also be read online at: -http://sources.redhat.com/pthreads-win32/manual/index.html +consistency with Pthreads4w. The set can also be read online at: +https://sourceforge.net/projects/pthreads4w//manual/index.html Thanks again to Tim Theisen for running the test suite pre-release on an MP system. @@ -328,7 +577,7 @@ semaphores, such as WinCE prior to version 3.0. An alternate implementation of POSIX semaphores is built using W32 events for these systems when NEED_SEM is defined. This code has been completely rewritten in this release to reuse most of the default POSIX semaphore code, and particularly, -to implement all of the sem_* routines supported by pthreads-win32. Tim +to implement all of the sem_* routines supported by Pthreads4w. Tim Theisen also run the test suite over the NEED_SEM code on his MP system. All tests passed. @@ -338,7 +587,7 @@ New features ------------ * pthread_mutex_timedlock() and all sem_* routines provided by -pthreads-win32 are now implemented for WinCE versions prior to 3.0. Those +Pthreads4w are now implemented for WinCE versions prior to 3.0. Those versions did not implement W32 semaphores. Define NEED_SEM in config.h when building the library for these systems. @@ -433,11 +682,11 @@ incremented from 1 to 2, e.g. pthreadVC2.dll. Version 1.4.0 back-ports the new functionality included in this release. Please distribute DLLs built from that version with updates -to applications built on pthreads-win32 version 1.x.x. +to applications built on Pthreads4w version 1.x.x. The package naming has changed, replacing the snapshot date with the version number + descriptive information. E.g. this -release is "pthreads-w32-2-0-0-release". +release is "Pthreads4w-2-0-0-release". Bugs fixed ---------- @@ -445,7 +694,7 @@ Bugs fixed * pthread_setcancelstate() no longer checks for a pending async cancel event if the library is using alertable async cancel. See the README file (Prerequisites section) for info -on adding alertable async cancelation. +on adding alertable async cancellation. New features ------------ @@ -531,7 +780,7 @@ New features * A Microsoft-style version resource has been added to the DLL for applications that wish to check DLL compatibility at runtime. -* Pthreads-win32 DLL naming has been extended to allow incompatible DLL +* Pthreads4w DLL naming has been extended to allow incompatible DLL versions to co-exist in the same filesystem. See the README file for details, but briefly: while the version information inside the DLL will change with each release from now on, the DLL version names will only change if the new @@ -541,7 +790,7 @@ The versioning scheme has been borrowed from GNU Libtool, and the DLL naming scheme is from Cygwin. Provided the Libtool-style numbering rules are honoured, the Cygwin DLL naming scheme automatcally ensures that DLL name changes are minimal and that applications will not load an incompatible -pthreads-win32 DLL. +Pthreads4w DLL. Those who use the pre-built DLLs will find that the DLL/LIB names have a new suffix (1) in this snapshot. E.g. pthreadVC1.dll etc. @@ -559,7 +808,7 @@ Certain POSIX macros have changed. These changes are intended to conform to the Single Unix Specification version 3, which states that, if set to 0 (zero) or not defined, then applications may use -sysconf() to determine their values at runtime. Pthreads-win32 does not +sysconf() to determine their values at runtime. Pthreads4w does not implement sysconf(). The following macros are no longer undefined, but defined and set to -1 @@ -611,7 +860,7 @@ Bug fixes A segfault (memory access fault) will result, and no thread will be created. -* pthread_barrier_wait() no longer acts as a cancelation point. +* pthread_barrier_wait() no longer acts as a cancellation point. * Fix potential race condition in pthread_once() - Tristan Savatier <tristan at mpegtv.com> @@ -650,7 +899,7 @@ destruction/creation cycles. New tests --------- -* semaphore4.c: Tests cancelation of the new sem_wait(). +* semaphore4.c: Tests cancellation of the new sem_wait(). * semaphore4t.c: Likewise for sem_timedwait(). @@ -688,21 +937,21 @@ New features * Ported to AMD64. - Makoto Kato <raven at oldskool.jp> -* True pre-emptive asynchronous cancelation of threads. This is optional +* True pre-emptive asynchronous cancellation of threads. This is optional and requires that Panagiotis E. Hadjidoukas's QueueUserAPCEx package be -installed. This package is included in the pthreads-win32 self-unpacking +installed. This package is included in the Pthreads4w self-unpacking Zip archive starting from this snapshot. See the README.txt file inside the package for installation details. -Note: If you don't use async cancelation in your application, or don't need +Note: If you don't use async cancellation in your application, or don't need to cancel threads that are blocked on system resources such as network I/O, -then the default non-preemptive async cancelation is probably good enough. -However, pthreads-win32 auto-detects the availability of these components +then the default non-preemptive async cancellation is probably good enough. +However, Pthreads4w auto-detects the availability of these components at run-time, so you don't need to rebuild the library from source if you change your mind later. All of the advice available in books and elsewhere on the undesirability -of using async cancelation in any application still stands, but this +of using async cancellation in any application still stands, but this feature is a welcome addition with respect to the library's conformance to the POSIX standard. @@ -731,12 +980,12 @@ SNAPSHOT 2003-09-04 Bug fixes --------- -* ptw32_cancelableWait() now allows cancelation of waiting implicit POSIX +* ptw32_cancelableWait() now allows cancellation of waiting implicit POSIX threads. New test -------- -* cancel8.c tests cancelation of Win32 threads waiting at a POSIX cancelation +* cancel8.c tests cancellation of Win32 threads waiting at a POSIX cancellation point. @@ -751,13 +1000,13 @@ DuplicateHandle failed instead of recycle it (very unlikely). * pthread_exit() was neither freeing nor recycling the POSIX thread struct for implicit POSIX threads. -New feature - Cancelation of/by Win32 (non-POSIX) threads +New feature - cancellation of/by Win32 (non-POSIX) threads --------------------------------------------------------- Since John Bossom's original implementation, the library has allowed non-POSIX -initialised threads (Win32 threads) to call pthreads-win32 routines and +initialised threads (Win32 threads) to call Pthreads4w routines and therefore interact with POSIX threads. This is done by creating an on-the-fly POSIX thread ID for the Win32 thread that, once created, allows fully -reciprical interaction. This did not extend to thread cancelation (async or +reciprical interaction. This did not extend to thread cancellation (async or deferred). Now it does. Any thread can be canceled by any other thread (Win32 or POSIX) if the former @@ -767,15 +1016,15 @@ PTHREAD_CANCELED (retrieved with GetExitCodeThread()). This allows a Win32 thread to, for example, call POSIX CV routines in the same way that POSIX threads would/should, with pthread_cond_wait() cancelability and -cleanup handlers (pthread_cond_wait() is a POSIX cancelation point). +cleanup handlers (pthread_cond_wait() is a POSIX cancellation point). -By adding cancelation, Win32 threads should now be able to call all POSIX +By adding cancellation, Win32 threads should now be able to call all POSIX threads routines that make sense including semaphores, mutexes, condition variables, read/write locks, barriers, spinlocks, tsd, cleanup push/pop, -cancelation, pthread_exit, scheduling, etc. +cancellation, pthread_exit, scheduling, etc. Note that these on-the-fly 'implicit' POSIX thread IDs are initialised as detached -(not joinable) with deferred cancelation type. The POSIX thread ID will be created +(not joinable) with deferred cancellation type. The POSIX thread ID will be created automatically by any POSIX routines that need a POSIX handle (unless the routine needs a pthread_t as a parameter of course). A Win32 thread can discover it's own POSIX thread ID by calling pthread_self(), which will create the handle if @@ -840,7 +1089,7 @@ Bug fixes * pthread_mutex_trylock() now returns correct error values. pthread_mutex_destroy() will no longer destroy a recursively locked mutex. -pthread_mutex_lock() is no longer inadvertantly behaving as a cancelation point. +pthread_mutex_lock() is no longer inadvertantly behaving as a cancellation point. - Thomas Pfaff <tpfaff@gmx.net> * pthread_mutex_timedlock() no longer occasionally sets incorrect mutex @@ -888,7 +1137,7 @@ from the compiler/language, and one of the following was defined accordingly: __CLEANUP_C C, including GNU GCC, not MSVC These defines determine the style of cleanup (see pthread.h) and, -most importantly, the way that cancelation and thread exit (via +most importantly, the way that cancellation and thread exit (via pthread_exit) is performed (see the routine ptw32_throw() in private.c). In short, the exceptions versions of the library throw an exception @@ -900,7 +1149,7 @@ is when it's canceled or exits via pthread_exit(). In this and future snapshots, unless the build explicitly defines (e.g. via a compiler option) __CLEANUP_SEH, __CLEANUP_CXX, or __CLEANUP_C, then the build NOW always defaults to __CLEANUP_C style cleanup. This style -uses setjmp/longjmp in the cancelation and pthread_exit implementations, +uses setjmp/longjmp in the cancellation and pthread_exit implementations, and therefore won't do stack unwinding even when linked to applications that have it (e.g. C++ apps). This is for consistency with most current commercial Unix POSIX threads implementations. Compaq's TRU64 @@ -964,7 +1213,7 @@ There are a few reasons: do the expected thing in that context. (There are equally respected people who believe it should not be easily accessible, if it's there at all, for unconditional conformity to other implementations.) -- because pthreads-win32 is one of the few implementations that has +- because Pthreads4w is one of the few implementations that has the choice, perhaps the only freely available one, and so offers a laboratory to people who may want to explore the effects; - although the code will always be around somewhere for anyone who @@ -1096,14 +1345,14 @@ with the C version, but AFAIK cleanup handlers would not then run in the correct sequence with destructors and exception cleanup handlers when an exception occurs. -* Cancelation once started in a thread cannot now be inadvertantly -double canceled. That is, once a thread begins it's cancelation run, -cancelation is disabled and a subsequent cancel request will +* cancellation once started in a thread cannot now be inadvertantly +double canceled. That is, once a thread begins it's cancellation run, +cancellation is disabled and a subsequent cancel request will return an error (ESRCH). * errno: An incorrect compiler directive caused a local version of errno to be used instead of the Win32 errno. Both instances are -thread-safe but applications checking errno after a pthreads-win32 +thread-safe but applications checking errno after a Pthreads4w call would be wrong. Fixing this also fixed a bad compiler option in the testsuite (/MT should have been /MD) which is needed to link with the correct library MSVCRT.LIB. @@ -1146,7 +1395,7 @@ SNAPSHOT 2000-08-10 ------------------- New: -- asynchronous cancelation on X86 (Jason Nye) +- asynchronous cancellation on X86 (Jason Nye) - Makefile compatible with MS nmake to replace buildlib.bat - GNUmakefile for Mingw32 @@ -1186,7 +1435,7 @@ Some new tests have been added. SNAPSHOT 1999-10-17 ------------------- -Bug fix - Cancelation of threads waiting on condition variables +Bug fix - cancellation of threads waiting on condition variables now works properly (Lorin Hochstein and Peter Slacik) |