*** /dev/null Sat Nov 23 00:57:45 2024
--- - Sat Nov 23 00:58:13 2024
***************
*** 0 ****
--- 1,2164 ----
+ ____ _ _
+ | _ \| |_| |__
+ | |_) | __| '_ \ ``Just because everything is different
+ | __/| |_| | | | doesn't mean anything has changed.''
+ |_| \__|_| |_| -- Irene Peter
+
+ GNU Pth - The GNU Portable Threads
+
+ ChangeLog
+ =========
+
+ This is the list of all(!) changes to this Pth source tree. For a list
+ of just the user-visible and/or major changes please have a look at
+ the NEWS file.
+
+ _ _ _
+ / || || |
+ | || || |_
+ | ||__ _|
+ __|_(_) |_|_____________________________________________________________
+
+ Changes between 1.4a1 and 1.4a2 (16-Apr-2000 to xx-Jun-2000)
+
+ *) Upgraded to GNU Shtool 1.4.10
+ [Ralf S. Engelschall]
+
+ *) Upgraded rse-pmt.ps paper to latest version as it will be
+ published on USENIX 2000.
+ [Ralf S. Engelschall]
+
+ *) Stack boundary fixes for Interactive Unix support
+ (--with-mctx-dsp=sjljisc). This allows one also to use this
+ variant for Interix on Window-NT (a POSIX.1 compliant subsystem).
+ [Kim Jongsu <kimjs@moasys.com>]
+
+ *) Upgraded to GNU Libtool 1.3.5
+ [Ralf S. Engelschall]
+
+ *) Fixed config.param parsing: IF is now also allowed on
+ VARIABLE=VALUE lines.
+ [Ralf S. Engelschall]
+
+ *) Allow for convinience reasons pth_usleep() to accept also
+ arguments greater than 1000000.
+ [Harvinder Sawhney <hsawhney@hotmail.com>]
+
+ *) Updated HACKING document.
+ [Ralf S. Engelschall]
+
+ *) Fixed warnings in pth_string.c related to va_arg() usage
+ and implicit type conversions.
+ [Ralf S. Engelschall]
+
+ *) Merge from Pth 1.3.5:
+ Fixed the <sys/select.h> checks in Autoconf: the logic
+ was reversed and this way <sys/select.h> wasn't included on
+ platforms were it existed and included where it wasn't present.
+ [M. Lavasani <lavasani@connect.org.uk>]
+
+ Changes between 1.3.3 and 1.4a1 (10-Mar-2000 to 16-Apr-2000)
+
+ *) Added a new feature to config.param: parameters can be extended
+ with ``<space>IF<space><shell-test>''. Then the preceeding
+ parameter is only added to the command line if the <shell-test>
+ returns 0. <shell-test> can be anything which is possible in a
+ Bourne-Shell `if' construct's expression.
+ [Ralf S. Engelschall]
+
+ *) Fixed usage of `volatile' qualifier in pointer context.
+ [Ralf S. Engelschall]
+
+ *) Now check also for -Wno-long-long compiler option under
+ --enable-debug, because pth_string.c contains `long long' stuff.
+ [Ralf S. Engelschall]
+
+ *) Now pth.h and pthread.h include the non-standard <sys/select.h>
+ header on brain-dead platforms (like AIX) to get the definition of
+ fd_set (which is required for the pth_select prototype).
+ [Ralf S. Engelschall, Stian Seeberg <stian@nimsoft.no>]
+
+ *) Fixed auto-configuration for ISC and Win32/Cygwin platforms.
+ [Ralf S. Engelschall, Giwon On <Giwon.On@KOM.tu-darmstadt.de>]
+
+ *) Removed -L. from $(LDFLAGS) in Makefile.in, because this
+ is not required (libtool already takes care of this).
+ [Ralf S. Engelschall]
+
+ *) Added a RPM spec file pth.spec which allows one to build RPM
+ packages directly from the Pth distribution tarball through a
+ simple `rpm -tb pth-1.X.Y.tar.gz' call.
+ [Daniel Richard G. <straker@MIT.EDU>]
+
+ *) Removed the too explicit `-m 644' from the libtool/shtool
+ installation command for libpth.la and instead use a `umask 022'.
+ The reason is because some platforms require the shared libraries
+ to be executable, so we cannot use an explicit mode. But we use the
+ umask to make sure we don't result in world or group writeable files.
+ [Ralf S. Engelschall, Daniel Richard G. <straker@MIT.EDU>]
+
+ *) Use full-path /sbin/sysctl in config.guess on FreeBSD because
+ not all users have /sbin in their $PATH.
+ [Jeff Trawick <trawick@ibm.net>]
+
+ *) Added eight new I/O functions pth_{recv,recvfrom,send,sendto}[_ev](3)
+ which correspond to the counterparts in UNIX98 (SUSv2).
+ [Ralf S. Engelschall]
+
+ *) Replaced for security reasons sprintf() and vsprintf() calls
+ with own pth_snprintf() and pth_vsnprintf() functions from the new
+ pth_string.c source.
+ [Ralf S. Engelschall]
+
+ *) Speeded up pth_ring_t handling by inlining code and by maintaining
+ number of contained nodes explicitly to avoid an O(n) operation when
+ the number of elements are requested.
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.4.9
+ [Ralf S. Engelschall]
+
+ _ _____
+ / | |___ /
+ | | |_ \
+ | |_ ___) |
+ __|_(_)____/____________________________________________________________
+
+ Changes between 1.3.2 and 1.3.3 (24-Feb-2000 to 10-Mar-2000)
+
+ *) Under Solaris and --enable-optimize we now also check for the
+ compiler option -fast which is supported by the Sun vendor compilers.
+ [Ralf S. Engelschall]
+
+ *) Fixed AC_COMPILER_OPTION macro in aclocal.m4: it wasn't aware of
+ the fact that running gcc with not supported options just leads to a
+ warning (but gcc still compiles the test program and exists with a 0
+ return value).
+ [Ralf S. Engelschall]
+
+ *) Fixed semantics of pth_cond_notify() to match POSIX: if one
+ notifies a condition variable which has still no waiter, the notify
+ operation is a no-op. Previously the condition signal was remembered
+ until a waiter arrived. This is now no longer the case.
+ [Ralf S. Engelschall, Chris Leishman <chris_leishman@freeonline.com.au>]
+
+ *) Allow pth_yield(<tid>) to yield also to <tid> if <tid> is a
+ freshly spawned thread, i.e. in state PTH_STATE_NEW instead of
+ PTH_STATE_READY, directly after a pth_spawn. This allows one better
+ control under co-routine programming.
+ [Ralf S. Engelschall]
+
+ *) Fixed internal pth_pqueue_delete() and pth_pqueue_tail()
+ functions to pth_pqueue.c for convinience reasons.
+ [Ralf S. Engelschall]
+
+ *) API CHANGE: Changed pth_time(int,int) to pth_time(long,long) and
+ pth_timeout(int,int) to pth_timeout(long,long), because pth_time_t
+ is a struct timeval and this structure is defined always via two
+ long's and not just int's.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up source code even more by making sure "signed",
+ "unsigned" and "const" qualifiers are used correctly and
+ consistently.
+ [Ralf S. Engelschall]
+
+ *) Changed default stack size from 32KB to 64KB, because
+ on Solaris and other platforms where one can set FD_SETSIZE to
+ values up to 65535 an fd_set is up to 8KB. Pth internally (in
+ the scheduler in pth_select_ev) has up to three fd_sets (up to
+ 24KB) on the stack, so a 32KB stack is too risky. Nevertheless
+ one can still spawn threads with smaller stacks by using
+ PTH_ATTR_STACK_SIZE, of course. Only the scheduler thread remains
+ with a 64KB stack, because this thread cannot be configured by the
+ application.
+ [Ralf S. Engelschall]
+
+ *) Fixed "make depend": a backslash was missing.
+ [Edwin Brown <Edwin.Brown@sdrc.com>]
+
+ *) Fixed "make install" for pth.m4 and the situation where
+ one compiles from a different sub-directory.
+ [Raphael Bossek <raphael.bossek@solutions4linux.de>]
+
+ Changes between 1.3.1 and 1.3.2 (20-Feb-2000 to 24-Feb-2000)
+
+ *) Do no longer use -woff in CFLAGS for IRIX 6.5.2 and above.
+ [Edwin Brown <Edwin.Brown@sdrc.com>, Ralf S. Engelschall]
+
+ *) Replaced ``while (1)'' constructs with ``for (;;)'' because some
+ compilers like this more and do not warn about constant expressions.
+ [Ralf S. Engelschall]
+
+ *) Added hint to pth.pod that ``pth_join(<tid>, NULL)'' is allowed.
+ [Ralf S. Engelschall]
+
+ *) Cancel and join the ticker thread explicitly in test_select.c
+ [Edwin Brown <Edwin.Brown@sdrc.com>, Ralf S. Engelschall]
+
+ *) Removed unnecessary code in pth_event.c
+ [Edwin Brown <Edwin.Brown@sdrc.com>, Ralf S. Engelschall]
+
+ *) Add special namespace workarounds to pthread.h.in for HPUX
+ platforms where the pthread_kill() prototypes conflict without this.
+ [M. Lavasani <lavasani@connect.org.uk>, Ralf S. Engelschall]
+
+ Changes between 1.3.0 and 1.3.1 (19-Feb-2000 to 20-Feb-2000)
+
+ *) Added HISTORY document where we now write down the evolution
+ and release dates of Pth to have a concise history reference.
+ [Ralf S. Engelschall]
+
+ *) Added USERS document where we now collect references to
+ software packages utilizing GNU Pth.
+ [Ralf S. Engelschall]
+
+ *) Fixed a subtle typo in pth.pod about thread-safe functions
+ and finished documentation of pth_attr_set/pth_attr_get functions.
+ [James Robinson <jlrobins@uncc.edu>, Jeremie <jeremie@jabber.org>]
+
+ Changes between 1.3b3 and 1.3.0 (13-Feb-2000 to 19-Feb-2000)
+
+ *) Polished the various document files.
+ [Ralf S. Engelschall]
+
+ *) Use -w in $CFLAGS also on UnixWare 2.1, because its cc
+ complains about "not reached" situations because of our macros.
+ [Ralf S. Engelschall]
+
+ *) Replaced "NOT REACHED" with "NOTREACHED" in comments
+ to be more correct for lint(1).
+ [Ralf S. Engelschall]
+
+ *) Updated config.param and fixed its parsing procedure.
+ [Ralf S. Engelschall]
+
+ *) Fixed a few typos in pth.pod and adjusted example program
+ to make sure it doesn't segfault accidently for the users.
+ [Tim Harris <tim_harris@snellwilcox.com>, Raphael Bossek
+ <raphael.bossek@solutions4linux.de>, Ralf S. Engelschall]
+
+ Changes between 1.3b2 and 1.3b3 (28-Jan-2000 to 13-Feb-2000)
+
+ *) Fixed PTH_EVENT_FUNC handling (it was not polled really
+ in regular intervals if there were no other FUNC events which
+ helped) by extending it with an interval time argument. This way
+ a PTH_EVENT_FUNC event is likewise a PTH_EVENT_TIME event which
+ calls the check function after elapsing and resets itself again if
+ it failed.
+ [Ralf S. Engelschall]
+
+ *) Removed PTH_EVENT_PID because the waiting on a process id was not
+ working as expected (the polling was not done in intervals) and this
+ type of event doesn't really fit very well into the multi-threading
+ environment of Pth (where the events should be thread-related and not
+ process-related). So instead of fixing the pid waiting event handling
+ through some unclean workarounds or kludges (it cannot be done very
+ different), it was decided to kick it out at all.
+ [Ralf S. Engelschall]
+
+ *) Make sure pth_connect[_ev]() doesn't block by internally
+ switching to non-blocking mode temporarily if necessary.
+ [Chris Leishman <chris_leishman@freeonline.com.au>, Ralf S. Engelschall]
+
+ *) Fix pthread_cond_timedwait by making it more POSIX compliant:
+ return ETIMEDOUT instead of 0 if the timeout occurred.
+ [Emanuele Fornara <efornara@hotmail.com>, Ralf S. Engelschall]
+
+ Changes between 1.3b1 and 1.3b2 (26-Jan-2000 to 28-Jan-2000)
+
+ *) Let "make striptease" be aware of $TMPDIR and remove temporary
+ directory from this dir, too.
+ [Ralf S. Engelschall]
+
+ *) Again cleaned up and enhanced the manual page pth.pod.
+ [Ralf S. Engelschall]
+
+ *) Added a few more errno_shield { ... } sections to prevent
+ the destruction of errno values on error returns.
+ [Ralf S. Engelschall]
+
+ *) Added more complete Linux support for --enable-syscall-hard by
+ using SYS_socketcall+SOCKOP_{accept,connect} if
+ SYS_{accept,connect} doesn't exist.
+ [Ralf S. Engelschall]
+
+ *) Added pth_suspend() and pth_resume together with an additional
+ SUSPENDED queue. This can be used to temporarily park threads in
+ order to move them out of the schedulers scope.
+ [Ralf S. Engelschall]
+
+ Changes between 1.3a5 and 1.3b1 (15-Jan-2000 to 26-Jan-2000)
+
+ *) Completely cleaned up the manual page.
+ [Eric Hanchrow <offby1@blarg.net>]
+
+ *) Use SYS__newselect instead of SYS_select under Linux and
+ --enable-syscall-hard because SYS_select is a dummy stub which
+ always just returns -1 and errno = EFAULT.
+ [Artem Gr <artem@bizlink.ru>, Ralf S. Engelschall]
+
+ Changes between 1.3a4 and 1.3a5 (08-Jan-2000 to 15-Jan-2000)
+
+ *) Updated HACKING document.
+ [Ralf S. Engelschall]
+
+ *) Removed '+DAportable' from HPUX flags to avoid problems.
+ [M. Lavasani <lavasani@connect.org.uk>]
+
+ *) Added a workround in Makefile.in (replaced "rm -r" with
+ "rm" + "rmdir") for brain-dead AmigaOS.
+ [Kriton Kyrimis <kyrimis@cti.gr>]
+
+ *) Fixed example in Pth manual page: peer_len wasn't initialized.
+ [Sami Niemi <saminiemi@usa.net>, Ralf S. Engelschall]
+
+ *) Fixed cleanup handling in test_sig.c.
+ [Ralf S. Engelschall]
+
+ *) Fixed memory leaks in some test programs.
+ [Ralf S. Engelschall]
+
+ Changes between 1.3a3 and 1.3a4 (08-Jan-2000 to 08-Jan-2000)
+
+ *) Translated The Open Group's SUSv2 Threading HTML documentation
+ into POD format to form an appendix for pthread.pod. This is for
+ convinience reasons when programming with the Pthread API of GNU Pth.
+ [Ralf S. Engelschall]
+
+ *) Fixed introduced debugging with "==== THREAD CONTEXT SWITCH ===="
+ lines. They were printed always.
+ [Ralf S. Engelschall]
+
+ Changes between 1.3a2 and 1.3a3 (30-Dec-1999 to 08-Jan-2000)
+
+ *) Added a PTH_CTRL_DUMPSTATE to pth_ctrl() which helps in debugging.
+ a pth_ctrl(PTH_CTRL_DUMPSTATE, stderr) for instance writes out a summary
+ page of the internal Pth library state to stderr. This is intended for
+ debugging purposes only, of course.
+ [Ralf S. Engelschall, Lubos Lunak <l.lunak@sh.cvut.cz>]
+
+ *) Fixed destructor for statically initialized events which failed
+ under asynchronous cancellation if those events were merged
+ together at the time of cancellation.
+ [Igor A. Minyukoff, Ralf S. Engelschall]
+
+ *) Updated the INSTALL document.
+ [Ralf S. Engelschall]
+
+ *) Fixed a memory leak in pth_kill(): the TCBs (plus one
+ stack) of the main and scheduler thread were not freed.
+ [Pete <pfv@grex.org>, Ralf S. Engelschall]
+
+ *) Added developer support for compiling and linking against the
+ Dmalloc library (for debugging memory allocation) through the
+ --with-dmalloc[=DIR] Autoconf option.
+ [Ralf S. Engelschall]
+
+ *) Fixed pth_compat.c: the #define for strerror was buggy.
+ [Ralf S. Engelschall]
+
+ Changes between 1.3a1 and 1.3a2 (09-Nov-1999 to 30-Dec-1999)
+
+ *) Added first cut of experimental Win32 support through Cygwin B20.1.
+ [Ralf S. Engelschall, Schizoid <schizoid21@yahoo.com>]
+
+ *) Fixed autoheader step by using AC_CHECK_HEADERS() instead of
+ AC_CHECK_HEADER() because Autoconf's autoheader.m4 isn't aware of
+ AC_CHECK_HEADER().
+ [Ralf S. Engelschall]
+
+ *) Adjusted all copyright messages to include the forthcoming
+ new year 2000, too.
+ [Ralf S. Engelschall]
+
+ *) Fixed $DIFS in pth-config.in and pthread-config.in
+ (the tab was lost) and cleaned up pth-config.in a little bit.
+ [Ralf S. Engelschall]
+
+ *) Upgraded from GNU libtool 1.3.3 to 1.3.4
+ and from GNU shtool 1.4.6 to 1.4.7.
+ [Ralf S. Engelschall]
+
+ *) Fixed cleanup handling for main thread. Now pth_kill()
+ and pth_exit() in the main thread work as expected.
+ [Ralf S. Engelschall, Anton Umnikov <anton@uic.dvgu.ru>]
+
+ *) Fixed Autoconf --host option.
+ [Ralf S. Engelschall, Kent Overstreet <kent@hotmail.com>]
+
+ *) Fixed pth_mctx.c by making sure ss_base is mapped to ss_sp
+ only if sigaltstack(2) is used for the stack trick.
+ [Kriton Kyrimis <kyrimis@cti.gr>]
+
+ *) Fixed return code semantics for error situation in both
+ pth_write(3) and pth_writev(3).
+ [Rob Quinn <rquinn@sec.sprint.net>, Ralf S. Engelschall]
+
+ *) Stripped trailing whitespaces from all source files.
+ [Ralf S. Engelschall]
+
+ Changes between 1.2.0 and 1.3a1 (31-Oct-1999 to 09-Nov-1999)
+
+ *) Changed AC_CHECK_STRUCTATTR macro from a too weak AC_TRY_EGREP to a
+ AC_TRY_LINK based approach to make sure the ss_sp/ss_base checks do not
+ fail on platforms where sys/signal.h contains both sigstack and
+ sigaltstack defines.
+ [Ralf S. Engelschall]
+
+ *) Added a large "BUILD ENVIRONMENT" section to pth.pod which describes
+ three ways to establish build environments for Pth based packages.
+ [Ralf S. Engelschall]
+
+ *) Updated the pth-config.pod and pthread-config.pod for
+ missing option entries.
+ [Ralf S. Engelschall]
+
+ *) Added --datadir and --acdir options to pth-config. Especially
+ --acdir can be used in conjunction with Autoconf's aclocal program to
+ retrieve the AC_CHECK_PTH macro, e.g. aclocal --output-
+ --acdir=`pth-config --acdir` prints the macro definition to stdout.
+ [Ralf S. Engelschall]
+
+ *) Added a new, very flexible and robust pth.m4 Autoconf macro file which
+ is installed under $datadir/aclocal/ and can be used by third-party
+ Autoconf scripts to locate GNU Pth. Syntax is:
+ AC_CHECK_PTH([MIN-VERSION [,DEFAULT-WITH-PTH [,DEFAULT-WITH-PTH-TEST
+ [,EXTEND-VARS [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]]]]).
+ [Ralf S. Engelschall, Markus Fischer <mfischer@josefine.ben.tuwien.ac.at>]
+
+ *) Added PTH_VERSION_{STR,HEX} to pth.h
+ [Ralf S. Engelschall]
+
+ *) Fixed AC_CHECK_EXTLIB macro.
+ [Ralf S. Engelschall]
+
+ *) Added a new developer target `make striptease' which uses the
+ new striptease.{pl,mk} files to strip down the Pth source tree to a
+ minimum (approx. 1/3 of size). The generated striptease.dir/ area can be
+ then imported into third-party source trees and there blows up the stuff
+ only as minimal as possible.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up copyright messages in source files.
+ [Ralf S. Engelschall]
+
+ *) Rewritten the Linux guessing part in config.guess to
+ create more useful GNU platform triples for Linux flavors.
+ [Ralf S. Engelschall]
+
+ _ ____
+ / | |___ \
+ | | __) |
+ | |_ / __/
+ __|_(_)_____|___________________________________________________________
+
+ Changes between 1.2.2 and 1.2.3 (08-Jan-2000 to 04-Feb-2000)
+
+ *) Backport from Pth 1.3b3:
+ Fix pthread_cond_timedwait by making it more POSIX compliant:
+ return ETIMEDOUT instead of 0 if the timeout occurred.
+ [Emanuele Fornara <efornara@hotmail.com>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3b2:
+ Added more complete Linux support for --enable-syscall-hard by
+ using SYS_socketcall+SOCKOP_{accept,connect} if
+ SYS_{accept,connect} doesn't exist.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3b2:
+ Added a few more errno_shield { ... } sections to prevent
+ the destruction of errno values on error returns.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3b1:
+ Use SYS__newselect instead of SYS_select under Linux and
+ --enable-syscall-hard because SYS_select is a dummy stub which
+ always just returns -1 and errno = EFAULT.
+ [Artem Gr <artem@bizlink.ru>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a5:
+ Removed '+DAportable' from HPUX flags to avoid problems.
+ [M. Lavasani <lavasani@connect.org.uk>]
+
+ *) Backport from Pth 1.3a5:
+ Added a workround in Makefile.in (replaced "rm -r" with
+ "rm" + "rmdir") for brain-dead AmigaOS.
+ [Kriton Kyrimis <kyrimis@cti.gr>]
+
+ *) Backport from Pth 1.3a5:
+ Fixed example in Pth manual page: peer_len wasn't initialized.
+ [Sami Niemi <saminiemi@usa.net>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a5:
+ Fixed memory leaks in some test programs.
+ [Ralf S. Engelschall]
+
+ Changes between 1.2.1 and 1.2.2 (14-Nov-1999 to 08-Jan-2000)
+
+ *) Backport from Pth 1.3a3:
+ Updated the INSTALL document.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a3:
+ Fixed a memory leak in pth_kill(): the TCBs (plus one
+ stack) of the main and scheduler thread were not freed.
+ [Pete <pfv@grex.org>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a3:
+ Fixed pth_compat.c: the #define for strerror was buggy.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a3:
+ Fixed destructor for statically initialized events which failed
+ under asynchronous cancellation if those events were merged
+ together at the time of cancellation.
+ [Igor A. Minyukoff, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a2:
+ Upgraded from GNU libtool 1.3.3 to 1.3.4
+ and from GNU shtool 1.4.6 to 1.4.7.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a2:
+ Fixed pth_mctx.c by making sure ss_base is mapped to ss_sp
+ only if sigaltstack(2) is used for the stack trick.
+ [Kriton Kyrimis <kyrimis@cti.gr>]
+
+ Changes between 1.2.0 and 1.2.1 (31-Oct-1999 to 14-Nov-1999)
+
+ *) Backport from Pth 1.3a2:
+ Fixed return code semantics for error situation in both
+ pth_write(3) and pth_writev(3).
+ [Rob Quinn <rquinn@sec.sprint.net>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a1:
+ Changed AC_CHECK_STRUCTATTR macro from a too weak AC_TRY_EGREP to a
+ AC_TRY_LINK based approach to make sure the ss_sp/ss_base checks do not
+ fail on platforms where sys/signal.h contains both sigstack and
+ sigaltstack defines.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a1:
+ Fixed AC_CHECK_EXTLIB macro.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.3a1:
+ Cleaned up copyright messages in source files.
+ [Ralf S. Engelschall]
+
+ Changes between 1.2b8 and 1.2.0 (26-Oct-1999 to 31-Oct-1999)
+
+ *) Finally tested the package on all major Unix platforms to which
+ I've direct access (see PORTING document for details).
+ [Ralf S. Engelschall]
+
+ *) Fixed a few remaining typos in pth.pod; adjusted README file for
+ release and included ANNOUNCE document in source tree.
+ [Ralf S. Engelschall]
+
+ *) Fixed special Autoconf detections for UnixWare 2.x platform.
+ [Ralf S. Engelschall]
+
+ *) Fixed special Autoconf detections for Linux platforms.
+ [Ralf S. Engelschall]
+
+ *) Updated INSTALL document.
+ [Ralf S. Engelschall]
+
+ *) Added -w option to CFLAGS under HP-UX with CC.
+ [Ralf S. Engelschall]
+
+ Changes between 1.2b7 and 1.2b8 (22-Oct-1999 to 26-Oct-1999)
+
+ *) Fixed Pthread compilation under NetBSD 1.4 and Solaris. The pth.h
+ header has to skip the fallbacks (and not the pthread.h header) when
+ compiling pthread.c. This subtle difference is important because
+ ordering is important for correct namespace hiding.
+ [Ralf S. Engelschall, John A. Maier <johnam@mail.kemper.org>]
+
+ *) Greatly enhanced AC_CHECK_ARGTYPE macro to support more
+ vendor headers and their syntax.
+ [Ralf S. Engelschall]
+
+ *) Added two new Autoconf options: --enable-maintainer for enabling
+ maintainer targets (now the x.pod -> x.N translation is disabled per
+ default and is enabled with this option only) and --enable-tests which
+ is on per default and can be used (as --disable-tests) to disable the
+ building of the test programs.
+ [Ralf S. Engelschall]
+
+ *) Fixed autoheader processing with a new acheader.m4 file.
+ [Ralf S. Engelschall]
+
+ *) Stripped down shtool script to 7 of 17 ingredients to reduce source
+ tree by approx. 40KB.
+ [Ralf S. Engelschall]
+
+ *) Updated acconfig.h: HAVE_NFDS_T was missing.
+ [Ralf S. Engelschall]
+
+ *) Fixed `make dist': CVS temporary files (.#xx) were included
+ into the distribution tarball.
+ [Ralf S. Engelschall]
+
+ Changes between 1.2b6 and 1.2b7 (28-Sep-1999 to 22-Oct-1999)
+
+ *) Add the .gdbinit file also to the distribution tarball.
+ [Ralf S. Engelschall]
+
+ *) Re-acquire the mutex corresponding to a condition variable when
+ pth_cond_await() is cancelled, in order to restore the condition
+ variable semantics.
+ [Lubos Lunak <l.lunak@email.cz>]
+
+ *) Fixed cancellation point handling.
+ [Lubos Lunak <l.lunak@email.cz>]
+
+ *) Added support for poll(2)'s POSIX nfds_t argument type.
+ [Ralf S. Engelschall]
+
+ *) Fixed AC_CHECK_ARGTYPE: it now handles wrapped lines, too.
+ [Ralf S. Engelschall]
+
+ *) Fixed regex in aclocal.m4: tabs were expanded to spaced.
+ [Ralf S. Engelschall]
+
+ *) Fixed a casting problem related to `void *' in pth_high.c
+ which g++ 2.95.1 hated.
+ [Ralf S. Engelschall]
+
+ *) Replaced Autoconf AC_CHECK_FUNCS macro with an own local copy named
+ AC_CHECK_FUNCTIONS which _always_ uses ``extern "C"'' if __cplusplus is
+ defined. This way one can configure Pth even if $CC is a C++ compiler.
+ [Ralf S. Engelschall]
+
+ *) Updated rse-pmt.ps document.
+ [Ralf S. Engelschall]
+
+ *) Fixed a few typos in the manual page.
+ [Ralf S. Engelschall]
+
+ *) Fixed aclocal.m4: CFXXLAGS -> CXXFLAGS ;)
+ [Alexandre Oliva <oliva@dcc.unicamp.br>]
+
+ Changes between 1.2b5 and 1.2b6 (21-Sep-1999 to 28-Sep-1999)
+
+ *) Added platform support for GNU/Linux kernel 2.2 / glibc 2.1
+ for both Alpha and Intel platforms via sjlj/ssjlj/sas.
+ (tested with both RedHat 6.0 and SuSE 6.1)
+ [Ralf S. Engelschall]
+
+ *) Added platform support for Tru64/OSF1 4.x and 5.0.
+ [Ralf S. Engelschall]
+
+ *) Added --prefix, --bindir, --libdir, --includedir and --mandir
+ options to pth-config and pthread-config. Mainly for convinience
+ and consistency reasons.
+ [Ralf S. Engelschall]
+
+ *) Avoid compiler complains in pth_mctx.c for assigning a `volatile
+ sigset_t'. Instead use a plain memcpy() with sizeof(sigset_t).
+ This now makes also IRIX' 6.5 cc happy.
+ [Ralf S. Engelschall]
+
+ *) Fixed the Autoconf AC_CHECK_MCSC check which tests whether
+ SVR4/SUSv2 makecontext(2), swapcontext(2) and friends can be used for
+ user-space context switching. It was broken because the uc_link and
+ uc_stack structure attributes were not initialized correctly.
+ [Ralf S. Engelschall, Ben Harris <bjh21@cam.ac.uk>]
+
+ *) Updated dependencies in Makefile.in.
+ [Ralf S. Engelschall]
+
+ *) Mention the new pth-users@gnu.org mailing list in SUPPORT
+ and added hint to Makefile.in.
+ [Ralf S. Engelschall]
+
+ Changes between 1.2b4 and 1.2b5 (17-Sep-1999 to 21-Sep-1999)
+
+ *) Added new Autoconf macro AC_COMPILER_OPTION which is now
+ used to check whether -pipe, -ggdb3 and -W<xxx> really work
+ before they are implicitly used.
+ [Ralf S. Engelschall, Alexandre Oliva <oliva@dcc.unicamp.br>]
+
+ *) Make sure pthread.c compiles even if the platforms lacks `struct
+ timespec'. The pthread_cond_timedwait() function will then still be
+ unuseable by the application, of course. But that's the intended
+ behavour, because the Pthread API cannot be changed at this point.
+ [Michele Satriani <satriani@info.uniroma2.it>, Ralf S. Engelschall]
+
+ *) Document it more clearly that PTH_ATTR_DEFAULT is _not_ the values an
+ pth_attr_init() creates. It means that priority, joinability and
+ cancelstate are _inherited_.
+ [Eric Newton <ecn@smart.net>]
+
+ Changes between 1.2b3 and 1.2b4 (17-Sep-1999 to 17-Sep-1999)
+
+ *) Fixed test_httpd.c: highest port is 65535 and not 65553 ;)
+ [Alex Fiori <alex@linuxbr.com>]
+
+ *) Fix Makefile.in: $(S)shtool -> $(srcdir)shtool
+ [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall]
+
+ *) Make Rhapsody happy with pth_errno.c by statically initializing
+ the contained variables.
+ [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall]
+
+ Changes between 1.2b2 and 1.2b3 (04-Sep-1999 to 17-Sep-1999)
+
+ *) Added first cut of support for building Pth outside it's source tree.
+ [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall]
+
+ *) Updated pth.pod for new socklen_t usage and updated NEWS file.
+ [Ralf S. Engelschall]
+
+ *) Officially switched from ``GNU Library General License v2.0''
+ to successor license: ``GNU Lesser General License v2.1''.
+ [Ralf S. Engelschall]
+
+ *) Enhanced ss_sp to ss_base mapping: There is now Autoconf
+ support for the mapping decision.
+ [Ralf S. Engelschall, Ben Harris <bjh21@cam.ac.uk>]
+
+ *) Add `PTHREAD' also to defines for namespace protection.
+ [Hans v. Sommerfeld <snoopy@redbaron.bir.uunet.de>]
+
+ *) Made the temporary errno saving more elegant with a new
+ `errno_shield { .... }' construct.
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.4.6
+ [Ralf S. Engelschall]
+
+ Changes between 1.2b1 and 1.2b2 (02-Sep-1999 to 04-Sep-1999)
+
+ *) Ported Pth to another esoteric, anchient and brain-dead
+ platform which needs jmp_buf fiddling: Interactive Unix (ISC) 4.0.
+ [Ralf S. Engelschall, Brandon Reynolds <bmr@comtime.com>]
+
+ *) Make sys/resource.h an optional header.
+ [Ralf S. Engelschall]
+
+ *) Added CPPFLAGS to Makefile.in and configure.in
+ [Ralf S. Engelschall]
+
+ Changes between 1.1.4 and 1.2b1 (30-Aug-1999 to 02-Sep-1999)
+
+ *) Added TESTS document which shows success stories with
+ Apache, MySQL, Perl, Python, OpenLDAP, pident, etc.
+ [Ralf S. Engelschall]
+
+ *) Enhanced pth-config/pthread-config scripts: first they
+ are now concatenating the output of the options into a single
+ string and print this at the end once. This way one can use things
+ like LIBS="`pthread-config --ldflags --libs`" without getting an
+ intermediate newline which causes trouble in various packages.
+ Second per default only pth-specific CFLAGS/LDFLAGS/LIBS are
+ printed. If one wants also additional flags one has used while
+ building Pth one now can add the --all option. This is to avoid
+ conflicts between Pth flags and flags of the application.
+ [Ralf S. Engelschall]
+
+ *) Added -w to CFLAGS for Solaris if $CC is not GCC to avoid the
+ warnings about "end of loop not reached" because of our
+ ``do { ...return;... } while(0)'' macros.
+ [Ralf S. Engelschall]
+
+ *) Fixed two bugs in internal pth_pqueue_delete() and one in
+ pth_pqueue_insert(): it accidently also adjusted the priority
+ queue top element if one deleted the last element of the queue and it
+ calculated the priority of the following element incorrectly.
+ [Jens Andersen <Jens@trw.nl>, Ralf S. Engelschall]
+
+ *) Optimized the signal mask handling: The application is now required to
+ use pth_sigmask(3) and no longer can use sigprocmask(2) directly
+ (as it's already the case for Pthreads where POSIX states that the
+ behaviour of sigprocmask(2) is not defined in a MT application).
+ The side-effect of this consistencency restriction is that
+ internally the machine context switching no longer has to remember
+ the signal mask on _every_ context switch. It's now sufficient
+ that pth_sigmask(3) sets the mask to allow the scheduler to
+ calculate its own mask. The result is a faster and more clean
+ thread dispatching. Additionally a soft and hard syscall mapping
+ for sigprocmask(2) was added, of course.
+ [Ralf S. Engelschall]
+
+ *) Added support for socklen_t to both avoid warnings under
+ some platforms and to avoid problems on 64 bit machines.
+ [Ralf S. Engelschall]
+
+ *) Added UnixWare7 support to config.guess
+ [Ralf S. Engelschall]
+
+ *) Added config.param facility.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up bootstrap stuff from configure.in and moved it to aclocal.m4.
+ [Ralf S. Engelschall]
+
+ *) Fixed autoconf's `--silent' flag: it wasn't passed to ltconfig.sh
+ [Ralf S. Engelschall]
+
+ *) Rewritten the "make test" message and refreshed the PORTING file to
+ start with a new format which now includes also the machine context and
+ stack growth direction.
+ [Ralf S. Engelschall]
+
+ *) Enhanced the interactive (not --enable-batch) mode: The Makefile now
+ displays real hints what to do as the next step. All messages can
+ be disabled via --enable-batch, of course.
+ [Ralf S. Engelschall]
+
+ *) Fixed aclocal.m4: Tabs were lost by accident.
+ [Ralf S. Engelschall]
+
+ *) Fixed a type warning in pth_debug.c: pid_t vs. int
+ [Ralf S. Engelschall]
+
+ _ _
+ / | / |
+ | | | |
+ | |_| |
+ __|_(_)_|_______________________________________________________________
+
+ Changes between 1.1.5 and 1.1.6 (02-Sep-1999 to 28-Sep-1999)
+
+ *) Backport from Pth 1.2b6:
+ Fixed the Autoconf AC_CHECK_MCSC check which tests whether
+ SVR4/SUSv2 makecontext(2), swapcontext(2) and friends can be used for
+ user-space context switching. It was broken because the uc_link and
+ uc_stack structure attributes were not initialized correctly.
+ [Ralf S. Engelschall, Ben Harris <bjh21@cam.ac.uk>]
+
+ *) Backport from Pth 1.2b5:
+ Document it more clearly that PTH_ATTR_DEFAULT is _not_ the values an
+ pth_attr_init() creates. It means that priority, joinability and
+ cancelstate are _inherited_.
+ [Eric Newton <ecn@smart.net>]
+
+ *) Backport from Pth 1.2b4:
+ Fixed test_httpd.c: highest port is 65535 and not 65553 ;)
+ [Alex Fiori <alex@linuxbr.com>]
+
+ *) Backport from Pth 1.2b4:
+ Make Rhapsody happy with pth_errno.c by statically initializing
+ the contained variables.
+ [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.2b3:
+ Add `PTHREAD' also to defines for namespace protection.
+ [Hans v. Sommerfeld <snoopy@redbaron.bir.uunet.de>]
+
+ *) Upgraded to GNU shtool 1.4.6
+ [Ralf S. Engelschall]
+
+ Changes between 1.1.4 and 1.1.5 (30-Aug-1999 to 02-Sep-1999)
+
+ *) Backport from Pth 1.2b1:
+ Enhanced pth-config/pthread-config scripts: first they
+ are now concatenating the output of the options into a single
+ string and print this at the end once. This way one can use things
+ like LIBS="`pthread-config --ldflags --libs`" without getting an
+ intermediate newline which causes trouble in various packages.
+ Second per default only pth-specific CFLAGS/LDFLAGS/LIBS are
+ printed. If one wants also additional flags one has used while
+ building Pth one now can add the --all option. This is to avoid
+ conflicts between Pth flags and flags of the application.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.2b1:
+ Fixed two bugs in internal pth_pqueue_delete() and one in
+ pth_pqueue_insert(): it accidently also adjusted the priority
+ queue top element if one deleted the last element of the queue and it
+ calculated the priority of the following element incorrectly.
+ [Jens Andersen <Jens@trw.nl>, Ralf S. Engelschall]
+
+ *) Backport from Pth 1.2b1:
+ Added -w to CFLAGS for Solaris if $CC is not GCC to avoid the
+ warnings about "end of loop not reached" because of our
+ ``do { ...return;... } while(0)'' macros.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.2b1:
+ Fixed autoconf's `--silent' flag: it wasn't passed to ltconfig.sh
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.2b1:
+ Fixed aclocal.m4: Tabs were lost by accident.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.2b1:
+ Fixed a type warning in pth_debug.c: pid_t vs. int
+ [Ralf S. Engelschall]
+
+ Changes between 1.1.3 and 1.1.4 (27-Aug-1999 to 30-Aug-1999)
+
+ *) Changed internal handling of spawned threads: they are now really
+ inserted to the top of the priority queue to make sure a thread is
+ guarrantied to be dispatched next when one calls pth_yield(NULL)
+ directly after a pth_spawn(). This is especially interesting for
+ programming with the co-routine paradigm where it allows one to better
+ control the startup of a co-routine.
+ [Ralf S. Engelschall, Jens Andersen <Jens@trw.nl>]
+
+ *) Fixed pthread_cancel(): a switch statement was incorrect (three
+ breaks were missing to stop falling through).
+ [Jens Andersen <Jens@trw.nl>]
+
+ *) Change internal `_pthread' prefix to `__pthread'.
+ [Ralf S. Engelschall]
+
+ *) Enhanced backward compatibility stuff for Pthread draft 4 (DCE Threads)
+ in pthread.h.in: When _POSIX_BACKCOMPAT is defined before the pthread.h
+ header is included one now gets a lot more backward compatibility
+ mappings.
+ [Ralf S. Engelschall]
+
+ *) Optimize internal processing by inlining various small functions from
+ pth_ring.c, pth_pqueue.c and pth_sched.c which are called a lot.
+ [Ralf S. Engelschall]
+
+ *) Optimized readline() in test_common.c
+ [Ralf S. Engelschall]
+
+ *) Added specific support for Linux/glibc/mc68000 to pth_mctx.c
+ [Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>]
+
+ *) Updated INSTALL document for --enable-optimize.
+ [Ralf S. Engelschall]
+
+ Changes between 1.1.2 and 1.1.3 (23-Aug-1999 to 27-Aug-1999)
+
+ *) Enhanced test program of AC_CHECK_STACKGROWTH in aclocal.m4 to
+ make sure the test variables are not optimized away by the
+ compiler and this way lead to incorrect check results.
+ [Martin Kraemer <martin.kraemer@mch.sni.de>, Ralf S. Engelschall]
+
+ *) Fixed default stack size: was 32*16384 (=512KB) instead
+ of the intended 32*1024 (=32KB).
+ [Ralf S. Engelschall]
+
+ *) Added --enable-optimize flag to configure with selected
+ standard optimization flags of GCC.
+ [Ralf S. Engelschall]
+
+ *) Added SUPPORT file to source tree.
+ [Ralf S. Engelschall]
+
+ *) Added test_philo, Dijkstra's Five Dining Philosophers ;)
+ [Ralf S. Engelschall]
+
+ *) Add "auto" qualifier to PTH_STACKGROWTH test program
+ to make sure the variables are placed into the stack.
+ [Ralf S. Engelschall]
+
+ *) Use predetermined $PLATFORM of configure also in Makefile
+ [Ralf S. Engelschall]
+
+ Changes between 1.1.1 and 1.1.2 (21-Aug-1999 to 23-Aug-1999)
+
+ *) Fixed Makefile.in: pth_acdef.h and pth_acmac.h were not removed on
+ "distclean" and this way they were accidently distributed.
+ [Ralf S. Engelschall]
+
+ *) Changed return type of pth_yield() from `void' to `int' to
+ be able to return an error FALSE/EINVAL in case the `tid'
+ argument specified an invalid or still not ready thread.
+ [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall]
+
+ *) Fixed description of pth_yield() in pth.pod.
+ [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall]
+
+ Changes between 1.1.0 and 1.1.1 (19-Aug-1999 to 21-Aug-1999)
+
+ *) Changed pthread_yield_np() from `void' return type to `int' to allow the
+ `#define sched_yield pthread_yield_np' work as expected, because
+ sched_yield has `int' return type per SUSv2.
+ [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall]
+
+ *) Fixed problems related to pthread_exit() and pth_exit(): The
+ PTH_EVENT_FUNC internally was used incorrectly by pth_exit() and the
+ implicit initialization was forgotten in pthread_exit().
+ [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall]
+
+ *) Added consistency check for `timeout' attribute of pth_poll
+ and various other EINVAL related checks to pth_event.c.
+ [Ralf S. Engelschall]
+
+ *) Added consistency check for `abstime' attribute of
+ pthread_cond_timedwait().
+ [Ralf S. Engelschall]
+
+ Changes between 1.1b7 and 1.1.0 (18-Aug-1999 to 19-Aug-1999)
+
+ *) Disable vendor typedefs in pthread.h.in because
+ it caused problems under Solaris.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up the sources a little bit more.
+ [Ralf S. Engelschall]
+
+ *) Updated rse-pmt.ps to v0.9.15
+ [Ralf S. Engelschall]
+
+ Changes between 1.1b6 and 1.1b7 (18-Aug-1999 to 18-Aug-1999)
+
+ *) Added test for nested thread operation to test_std.c
+ [Ralf S. Engelschall]
+
+ *) Updated rse-pmt.ps to talk about the sigsetjmp(3) problems.
+ [Ralf S. Engelschall]
+
+ *) Enhanced the heart of Pth: pth_mctx_set().
+ Instead of the real dispatching functions a plain setjmp(3)/longjmp(3)
+ pair is used for the trampoline trick in order to avoid problems with
+ sigjmp_buf-attached signal stacks on platforms where sigsetjmp(3) does
+ more than it is usuallly expected. This especially fixes `thread spawns
+ thread' problems under HPUX.
+ [Ralf S. Engelschall, Aaron Metzger <ametzger@varcom.com>]
+
+ Changes between 1.1b5 and 1.1b6 (17-Aug-1999 to 18-Aug-1999)
+
+ *) Fixed return value of pth_write/pth_read.
+ [Eric Newton <ecn@smart.net>, Ralf S. Engelschall]
+
+ *) Fixed example in manual page (pth.pod): pth_load()
+ is now pth_ctrl(PTH_CTRL_GETAVLOAD, ...)
+ [Eric Newton <ecn@smart.net>]
+
+ *) Fixed warning in pth_high.c related to implicit casting.
+ [Ralf S. Engelschall]
+
+ *) Added BS2000 support to config.guess/config.sub.
+ [Martin Kraemer]
+
+ *) Fixed a sigaltstack() call in pth_mctx.c: the return code
+ was checked incorrectly.
+ [Ralf S. Engelschall]
+
+ *) Updated rse-pmt.ps
+ [Ralf S. Engelschall, Eric Newton <ecn@smart.net>]
+
+ *) Fixed a nasty bug in the thread stack allocation: A stack was also
+ allocated for the main thread, but not used. The problem was that an
+ allocated stack has a guardian and this way was checked each time and
+ could lead to a bogus STACK OVERFLOW for the "main" thread.
+ [Ralf S. Engelschall, Martin Kraemer]
+
+ Changes between 1.1b4 and 1.1b5 (13-Aug-1999 to 17-Aug-1999)
+
+ *) Added draft of forthcoming paper ``Portable Multithreading - The Signal
+ Stack Trick Of User-Space Thread Creation'' to source tree under
+ rse-pmt.ps. Hackers are encouraged to read this if they want to
+ understand Pth's internals.
+ [Ralf S. Engelschall]
+
+ *) Source cleanups: added `extern' qualifier to function prototypes in
+ pth.h.in and pthread.h.in; make compilation silent with both gcc 2.95.1 C
+ and C++ frontends by fixing implicit type conversion situations, etc.
+ [Ralf S. Engelschall]
+
+ *) Return EBUSY instead of EAGAIN for pth_mutex_acquire() when the "try"
+ argument is TRUE. This fixes especially the POSIX semantics of
+ pthread_mutex_trylock().
+ [Ralf S. Engelschall]
+
+ *) Added pth_compat.c with strerror(3) replacement for SunOS.
+ [Ralf S. Engelschall]
+
+ *) Fixed pthread_{mutex,rwlock,cond}_destroy() functions.
+ [Ralf S. Engelschall]
+
+ *) Added support for `configure <platform-id>'.
+ [Ralf S. Engelschall, Martin Kraemer <Martin.Kraemer@mch.sni.de>]
+
+ Changes between 1.1b3 and 1.1b4 (11-Aug-1999 to 13-Aug-1999)
+
+ *) Fixed blocking semantics of pth_writev().
+ [Ralf S. Engelschall]
+
+ *) Fixed a very nasty bug in pth_select(): The write fd_set was passed
+ twice to the scheduler (once as the write fd_set and once as the
+ execptional fd_set). This caused problems, because the event loop this
+ way deleted bits in the write fd_set by accident and the return semantic
+ was broken.
+ [Ralf S. Engelschall]
+
+ *) Added fallbacks for UIO_MAXIOV to pth.h and pthread.h
+ [Ralf S. Engelschall]
+
+ *) Remove locking check in pth_mutex_init() because this would only work
+ with static vars where ANSI C guarranties an initialization with 0
+ bytes.
+ [Martin Kraemer <Martin.Kraemer@mch.sni.de>]
+
+ *) Fixed pth_write() semantics.
+ [Ralf S. Engelschall]
+
+ Changes between 1.1b2 and 1.1b3 (10-Aug-1999 to 11-Aug-1999)
+
+ *) Overhauled pthread.h to make it better compile-able also under
+ platforms where a vendor Pthread library exists.
+ [Ralf S. Engelschall]
+
+ *) Reordered ingredients of configure.in.
+ [Ralf S. Engelschall]
+
+ *) Fixed aclocal.m4: -g was incorrectly stripped.
+ [Ralf S. Engelschall]
+
+ *) Enhance pth_write(): In non-blocking (default) mode it now mimics the
+ behaviour of write(2) more correctly by iterating until all data is
+ written or an error occurs.
+ [Ralf S. Engelschall]
+
+ Changes between 1.1b1 and 1.1b2 (07-Aug-1999 to 10-Aug-1999)
+
+ *) Fixed ring walking inside both public pth_msgport_find() function and
+ the internal pth_mutex_releaseall() function.
+ [Laurent Vaucher <laurent.vaucher@ficsgrp.com>]
+
+ Changes between 1.0.4 and 1.1b1 (03-Aug-1999 to 07-Aug-1999)
+
+ *) Fixed test_select.c: a char has to be used for read(2) and not an int.
+ [Ralf S. Engelschall]
+
+ *) Fixed AC_CHECK_NSIG test and this way PTH_NSIG define.
+ [Ralf S. Engelschall]
+
+ *) Overhauled pth_mctx.c's internals according to latest algorithm of my
+ paper ``Portable Multithreading - The Signal Stack Trick For User-Space
+ Thread Creation''. Especially: sigstack had not restored stack
+ correctly, the signal mask was not inherited correctly; Linux
+ signal mask handling was incorrect, etc.
+ [Ralf S. Engelschall]
+
+ *) Adjusted variables in pth_mctx.c to use `volatile' qualifier.
+ [Ralf S. Engelschall]
+
+ *) Simplified Makefile.in a little bit by removing $(OBJS)
+ [Ralf S. Engelschall]
+
+ *) Replaced the run-time stack growth decision for the guardian in
+ pth_tcb.c with a compile-time decision.
+ [Ralf S. Engelschall]
+
+ *) Completly rewritten the configure.in part which deals
+ with the machine context (mctx) implementation: First SVR4/SUSv2
+ makecontext(2) and friends are generally preferred. Second, the user
+ now can override the decisions via --with-mctx-{mth,dsp,stk}. Third, the
+ pth_mctx.c source was enhanced by using skaddr_xxx() and sksize_xxx()
+ macros which know through Autoconf checks how a stack has to be setup
+ correctly for makecontext(2), sigaltstack(2) and sigstack(2).
+ [Ralf S. Engelschall]
+
+ *) Add support to pth_mctx.c for SVR4/SUSv2 makecontext(2)/swapcontext(2)
+ and friends. This way Pth now is best prepared to cover forthcoming Unix
+ flavors, because these are didicated and standadized functions for
+ user-space context switching.
+ [Ralf S. Engelschall]
+
+ *) Completely overhauled aclocal.m4
+ [Ralf S. Engelschall]
+
+ *) Use GNU config.guess/config.sub instead of GNU shtool guessos
+ for wider support inside GNU libtool.
+ [Ralf S. Engelschall]
+
+ *) Replaced switch() over long variables (which aren't covered by
+ traditional C) with an if-else construct in pth_event.c to be more
+ portable.
+ [Ralf S. Engelschall]
+
+ *) Fixed timeout handling in pth_select().
+ [Ralf S. Engelschall]
+
+ *) Don't free(2) application-supplied stacks on cleanups.
+ [Ralf S. Engelschall]
+
+ *) Don't allow an application to change the stack size or address on an
+ pth_attr_t object when its attached to a thread (see pth_attr_of).
+ [Ralf S. Engelschall]
+
+ *) Added pth_ext.c for extensional functionality. As a first
+ cut Sfio support is provided by an additional function pth_sfiodisc.
+ This functions is always available, but only reasonably useable when Pth
+ was built with Sfio support (--with-sfio option) and PTH_EXT_SFIO is
+ then defined by pth.h. It is useful for applications which want to use
+ the comprehensive Sfio I/O library with the Pth threading library. Then
+ this function can be used to get an Sfio discipline structure (Sfdisc_t)
+ which can be pushed onto Sfio streams (Sfio_t) in order to let this
+ stream use pth_read(3)/pth_write(2) instead of read(2)/write(2). The
+ benefit is that this way I/O on the Sfio stream does only block the
+ current thread instead of the whole process. The application has to
+ free(3) the Sfdisc_t structure when it is no longer needed.
+ [Ralf S. Engelschall]
+
+ *) Added `barrier' synchronization objects. These provide a way to let a
+ group of threads wait at a barrier until the last reached the barrier.
+ It's implemented on top of mutex and condition variable.
+ [Ralf S. Engelschall]
+
+ *) Replaced a bogus stdio fgetc() in test_select with pth_read().
+ [Ralf S. Engelschall]
+
+ *) Fixed internal pth_debug(3): it now preserved errno to make sure there
+ is no run-time difference in semantics just because of debug messages.
+ [Ralf S. Engelschall]
+
+ *) Overhauled the filedescriptor handling:
+ 1. There is no longer a requirement to manually switch a filedescriptor
+ into non-blocking mode in order to use it. This is automatically done
+ temporarily inside Pth now. Instead when you now switch a filedescriptor
+ explicitly into non-blocking mode, pth_read(3) or pth_write(3) will
+ never block the current thread as it is the expected behaviour for
+ non-blocking I/O.
+ 2. pth_nonblocking(3) was replaced by a more convinient pth_fdmode(3)
+ function which can perform both get and set operations at once.
+ [Ralf S. Engelschall]
+
+ _ ___
+ / | / _ \
+ | || | | |
+ | || |_| |
+ __|_(_)___/_____________________________________________________________
+
+ Changes between 1.0.4 and 1.0.5 (03-Aug-1999 to 10-Aug-1999)
+
+ *) Backport from Pth 1.1b2:
+ Fixed ring walking inside both public pth_msgport_find() function
+ and the internal pth_mutex_releaseall() function.
+ [Laurent Vaucher <laurent.vaucher@ficsgrp.com>]
+
+ *) Backport from Pth 1.1b1:
+ In pth_mctx.c the signal stack was not restored correctly.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.1b1:
+ Fixed test_select.c: a char has to be used for read(2) and not an int.
+ And replaced a bogus stdio fgetc() in test_select with pth_read().
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.1b1:
+ Fixed AC_CHECK_NSIG test and this way PTH_NSIG define.
+ [Ralf S. Engelschall]
+
+ *) Backport from Pth 1.1b1:
+ Fixed timeout handling in pth_select().
+ [Ralf S. Engelschall]
+
+ Changes between 1.0.3 and 1.0.4 (30-Jul-1999 to 03-Aug-1999)
+
+ *) Fixed two read/write calls: they didn't use the pth_sc wrapper.
+ [Ralf S. Engelschall]
+
+ *) Make pth_{read,write}() functions more POSIX compliant by returning 0
+ when the nbytes argument is given as 0. And make pth_{readv,writev}()
+ functions more POSIX compliant by returning -1/EINVAL when the iovcnt
+ argument is less or equal to 0.
+ [Ralf S. Engelschall]
+
+ *) Added missing readv/writev wrappers to pthread.c
+ [Ralf S. Engelschall]
+
+ *) Typo fixes in pth.pod
+ [Eric Newton <ecn@smart.net>]
+
+ *) Fixed special `--disable-static --enable-shared' situation.
+ [Felix von Leitner <leitner@fefe.de>, Ralf S. Engelschall]
+
+ *) Fixed `debug-xx' targets.
+ [Ralf S. Engelschall]
+
+ Changes between 1.0.2 and 1.0.3 (28-Jul-1999 to 30-Jul-1999)
+
+ *) Fixed inconsistent and wrong API value: PTH_ATTR_NULL existed and was
+ documented as PTH_ATTR_NONE. But actually the intended and intuitive
+ value was PTH_ATTR_DEFAULT. !BE CAREFUL: This is an API change and
+ requires adjustments in Pth applications!
+ [Ralf S. Engelschall, Eric Newton <ecn@smart.net>]
+
+ *) Make sure pthread.h.in doesn't redefine the poll(2) environment
+ under built-time because it's already defined by the included pth.h.
+ [Kriton Kyrimis <kyrimis@cti.gr>]
+
+ *) Add readv/writev environment fallback definitions to pthread.h.in.
+ [Ralf S. Engelschall]
+
+ *) Support for AmigaOS in pthreads.c: timespec attributes have (correct)
+ ts_ prefix under AmigaOS and not the (bogus) POSIX tv_ prefix
+ [Kriton Kyrimis <kyrimis@cti.gr>]
+
+ *) Add `#include <time.h>' for struct timespec to pthread.h.in
+ and removed timespec references in pth.h.in.
+ [Ralf S. Engelschall]
+
+ *) Fixed documentation for pth_spawn() and pth_wait().
+ [Ralf S. Engelschall, Eric Newton <ecn@smart.net>]
+
+ Changes between 1.0.1 and 1.0.2 (22-Jul-1999 to 28-Jul-1999)
+
+ *) Upgraded to GNU shtool 1.4.5.
+ [Ralf S. Engelschall]
+
+ *) Added `uninstall' target to Makefile
+ [Ralf S. Engelschall]
+
+ *) Cleanup package to conform to the GNU standards: added AUTHORS document;
+ renamed CHANGES to ChangeLog and added NEWS document; renamed LICENSE to
+ COPYING; renamed CREDITS to THANKS; added hint to bug-pth@gnu.org to
+ pth.pod manual.
+ [Ralf S. Engelschall]
+
+ *) Fixed HAVE_SIGSTACK alternative in pth_mctx.c
+ [Jim Jagielski <jim@jaguNET.com>]
+
+ *) Removed internal "was_blocking" attribute in event structure
+ because it was never used.
+ [Ralf S. Engelschall]
+
+ *) Fixed documentation of pth_xxx_init() synchronization functions.
+ [Ralf S. Engelschall]
+
+ Changes between 1.0.0 and 1.0.1 (16-Jul-1999 to 22-Jul-1999)
+
+ *) Added missing documentation for pth_timeout().
+ [Ralf S. Engelschall]
+
+ *) Moved pthread_p{read,write}() to pth_high.c as pth_p{read,write}()
+ and added syscall wrapper support for it.
+ [Ralf S. Engelschall]
+
+ *) Added support for readv(2) and writev(2): There are now
+ four new API functions pth_readv, pth_readv_ev, pth_writev and
+ pth_writev_ev. Additionally on platforms where no native
+ readv(2)/writev(2) exists, the struct iovec is faked and the internal
+ implementation is based on read(2)/write(2). This way the functionality
+ is available everywhere. Finally, the syscall support was extended to
+ cover readv and writev now, too.
+ [Ralf S. Engelschall]
+
+ *) Added support for FNDELAY to pth_nonblocking.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up pthread.h and pth.h and added extra forward definitions for
+ struct timeval/timespec to avoid problems on some platforms (like SCO).
+ [Ralf S. Engelschall]
+
+ *) Added "make check" as an alias for "make test"
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.4.4 and use new `shtool tarball'
+ [Ralf S. Engelschall]
+
+ Changes between 1.0b8 and 1.0.0 (16-Jul-1999 to 16-Jul-1999)
+
+ *) Fixed scheduler reinitialization.
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.4.4-dev.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up syscall stuff: usleep() is not longer mapped because it's too
+ unstandardized, sigwait() is again mapped because it is standardized and
+ those platforms which fail are broken.
+ [Ralf S. Engelschall]
+
+ *) Fixed pthread-config.in: -lpth => -lpthread
+ [Ralf S. Engelschall]
+
+ *) Downgraded required Autoconf version to 2.12
+ [Ralf S. Engelschall]
+
+ *) Moved pth_readline[_ev]() from the Pth API into test_common.c because
+ this function is just a half-way solution (pth_read doesn't use the same
+ buffer) and when one needs buffered I/O it's better to use a _real_ I/O
+ library like Sfio, etc.
+ [Ralf S. Engelschall]
+
+ *) Cleanup to Makefile.in
+ [Ralf S. Engelschall]
+
+ Changes between 1.0b7 and 1.0b8 (14-Jul-1999 to 16-Jul-1999)
+
+ *) Fixed result handling of stack growth detection.
+ [Ralf S. Engelschall, Frank Carpenter <carpen@nortelnetworks.com>]
+
+ *) Added explicit libtool --mode flags in Makefile.in
+ to avoid compiler guessing problems on esoteric platforms.
+ [Ralf S. Engelschall]
+
+ *) Fixed broken condition variable handling: the scheduler
+ incorrectly checked the condition variable flags.
+ [Ralf S. Engelschall, Andrew Hunter <esvce@dcs.warwick.ac.uk>]
+
+ *) Allow main thread to be joinable to fulfill POSIX.
+ [Ralf S. Engelschall]
+
+ *) Fixed a nasty bug in the scheduler: the write and exceptional
+ filedescriptor sets were not passed to the select(): ARGL!
+ [Ralf S. Engelschall]
+
+ *) Added implicit initialization to pth_syscall.c stuff
+ and pthread.c stuff.
+ [Ralf S. Engelschall]
+
+ *) Fixed again static initializations via PTHREAD_XXX_INITIALIZER
+ [Ralf S. Engelschall]
+
+ *) Fixed again PTHREAD_ONCE_INIT
+ [Ralf S. Engelschall]
+
+ *) Added PTHREAD_CANCELED to pthread.h.
+ [Ralf S. Engelschall]
+
+ *) Fixed POSIX pthread_testcancel(): it is defined to have
+ void return type and not int.
+ [Ralf S. Engelschall]
+
+ Changes between 1.0b6 and 1.0b7 (14-Jul-1999 to 14-Jul-1999)
+
+ *) Replaced FALSE value for PTHREAD_ONCE_INIT in pthread.h with 0 to
+ be not dependent on such defines.
+ [Ralf S. Engelschall, Rick Brownrigg]
+
+ *) Disabled syscall soft mapping for usleep because it causes prototype
+ conflicts with unistd.h on some platforms due to the fact that usleep(3)
+ is bad standardized.
+ [Ralf S. Engelschall, Rick Brownrigg]
+
+ *) Added pthread_cancel() to POSIX emulation.
+ [Ralf S. Engelschall, Rick Brownrigg]
+
+ *) Fixed poll(2)/poll.h detection in Autoconf.
+ [Ralf S. Engelschall, Igor A. Minyukoff <iam@inser.loniis.spb.su>]
+
+ Changes between 1.0b5 and 1.0b6 (11-Jul-1999 to 14-Jul-1999)
+
+ *) Fixed pth_attr_ctrl(): it failed with EACCES because
+ of incorrect comparisons
+ [Igor A. Minyukoff <iam@inser.loniis.spb.su>]
+
+ *) Replaced PTHREAD_{MUTEX,COND,RWLOCK}_INITIALIZER with an alternative
+ implementation to allow the assignment to `static' variables, too.
+ [Ralf S. Engelschall, Rick Brownrigg <brownrig@erg.sri.com>]
+
+ Changes between 1.0b4 and 1.0b5 (08-Jul-1999 to 11-Jul-1999)
+
+ *) Fixed pth_waitpid() semantics.
+ [Ralf S. Engelschall]
+
+ *) Added pth_poll() and pth_poll_ev() with the following trick: it is always
+ present (independent whether the platform has poll(2) or not), because it
+ is (AND HAS TO BE) internally based on pth_select(). The poll function
+ wrapping support was added, too.
+ [Ralf S. Engelschall]
+
+ *) Moved pth_init() to the top of all test applications.
+ [Ralf S. Engelschall]
+
+ *) Added direct system call mapping support: --enable-syscall-soft
+ enables #define's in pth.h and pthread.h which do a soft-mapping of e.g.
+ read to pth_read. This is _always_ possible. --enable-syscall-hard
+ enables the exportation of syscall wrappers (e.g. read) by the Pth
+ library and the calling of the real system calls via syscall(2), hence
+ this variant is only available when the platform supports syscall(2)
+ [e.g. yes: *BSD, Linux, Solaris, HP/UX, IRIX, UnixWare; no: AIX, SCO5]
+
+ For the soft variant the whole application sources have to include
+ pth[read].h and existing libraries (like stdio!) can still block the
+ whole process, while for the hard variant the application sources do not
+ all have to include pth[read].h an existing libraries (including stdio!)
+ magically use Pth's system call wrappers.
+ [Ralf S. Engelschall]
+
+ *) Speeded up `configure --help' by not creating the header
+ [Ralf S. Engelschall]
+
+ *) Added pth_select_ev() and pth_select() based on the new PTH_EVENT_SELECT
+ and the old PTH_EVENT_TIME events which emulate 4.2BSD's select(2), but
+ suspend only the current thread. Additionally added a select() wrapper to
+ the POSIX wrapper API.
+ [Ralf S. Engelschall]
+
+ *) Added PTH_EVENT_SELECT which can be used to suspend the current thread
+ until an event occured in one of three fd _sets_ similar to select(2) but
+ without the timeout facility.
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.4.3. This especially fixes
+ the shared library generation under GNU/Linux now.
+ [Ralf S. Engelschall]
+
+ *) Added pth_abort() and a corresponding pthread_abort()
+ for cruel ways to cancel a thread.
+ [Ralf S. Engelschall]
+
+ *) Fixed POSIX pread()/pwrite(): Their mutex variables have
+ to be static variables and not local variables.
+ [Ralf S. Engelschall]
+
+ *) Added #define for POSIX sched_yield() to pthread.h.in
+ [Ralf S. Engelschall]
+
+ Changes between 1.0b3 and 1.0b4 (07-Jul-1999 to 08-Jul-1999)
+
+ *) Added POSIX pread() and pwrite() [parallel I/O] emulation
+ functions to pthread.{ch].
+ [Ralf S. Engelschall]
+
+ *) Removed double-definition of the fallback types in pthread.h.in.
+ [Ralf S. Engelschall]
+
+ *) Added pthread_atfork() to pthread.c
+ [Ralf S. Engelschall]
+
+ *) Added pth_atfork_{push,pop}() functions and moved them together with
+ pth_fork() to a new pth_fork.c source files. Updated also the
+ documentation to describe the new at-fork handlers.
+ [Ralf S. Engelschall]
+
+ *) Write still missing documentation for pth_cleanup_{push,pop}()
+ [Ralf S. Engelschall]
+
+ *) Fixed again pth_event_concat(): The last attempt was
+ to inefficient and still had a bug.
+ [Igor A. Minyukoff <iam@inser.loniis.spb.su>, Ralf S. Engelschall]
+
+ *) Cleaned up all name references: The official long name is `GNU Portable
+ Threads', the official short name is `GNU Pth' and the common prefix is
+ `pth_' and `PTH_'.
+ [Ralf S. Engelschall]
+
+ Changes between 1.0b2 and 1.0b3 (04-Jul-1999 to 07-Jul-1999)
+
+ *) Remove a trailing comma inside an enum in pthread.h.in
+ [Martin Kraemer <martin.kraemer@mch.sni.de>]
+
+ *) Added two new API event-related functions which can be used to extract
+ the contents of existing events: pth_event_typeof() and
+ pth_event_extract().
+ [Ralf S. Engelschall]
+
+ *) Fixed pth_event_concat(): It was broken because it
+ handled real/non-single-event event rings not correctly.
+ [Igor A. Minyukoff <iam@inser.loniis.spb.su>, Ralf S. Engelschall]
+
+ *) Fixed pth_event_walk(): It was broken for PTH_WALK_NEXT
+ [Igor A. Minyukoff <iam@inser.loniis.spb.su>, Ralf S. Engelschall]
+
+ *) Fixed memory leak in pth_join()
+ [Igor A. Minyukoff <iam@inser.loniis.spb.su>]
+
+ *) Fixed manual page pthread-config.pod
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.4.1 and GNU libtool 1.3.3
+ [Ralf S. Engelschall]
+
+ *) Fixed test_pthread.c: sleep(3) requires unistd.h
+ [Ralf S. Engelschall, Martin Kraemer <martin.kraemer@mch.sni.de>]
+
+ *) Cleaned up --enable-batch/--enable-pthread
+ [Ralf S. Engelschall]
+
+ Changes between 1.0b1 and 1.0b2 (28-Jun-1999 to 04-Jul-1999)
+
+ *) Upgraded to GNU shtool 1.4.0
+ [Ralf S. Engelschall]
+
+ *) Changed return value type of pth_version() from "int" to "long"
+ to avoid problems with too large numbers.
+ [Ralf S. Engelschall]
+
+ *) Simplified internal representation of pth_once_t
+ [Ralf S. Engelschall]
+
+ *) !!ATTENTION!! Renamed _anything_ from the old
+ coding-name nps/NPS to the new official name pth/PTH.
+ [Ralf S. Engelschall]
+
+ *) Added the new POSIX.1c pthread emulation library
+ (pthread* files). It has to be enabled explicitly
+ via --enable-pthread because it's disabled per default)
+ [Ralf S. Engelschall]
+
+ *) Enhanced pthread.pod manual page.
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.21 and 1.0b1 (25-Jun-1999 to 28-Jun-1999)
+
+ *) Added internal pth_util_cpystrn() to pth_util.c
+ [Ralf S. Engelschall]
+
+ *) removed pth_attr(), pth_priority(), pth_detach()
+ [Ralf S. Engelschall]
+
+ *) added new pth_attr_*() functions for manipulating pth_attr_t objects;
+ this is now more flexible because those objects now can be also bound to
+ threads when retrieved via pth_attr_of(). THIS IS A HEAVY BUT IMPORTANT
+ API CHANGE! READ THE DOCS AND THE TEST PROGRAMS FOR DETAILS. SORRY, BUT
+ IS HAS TO BE DONE BEFORE WE ENTER THE STABLE 1.0 VERSIONS.
+ [Ralf S. Engelschall]
+
+ *) Added --enable-profile and --enable-batch to Autoconf
+ [Ralf S. Engelschall]
+
+ *) Updated pth.pod to reflect latest changes.
+ [Ralf S. Engelschall]
+
+ *) Renamed pth_state_* to upper case names.
+ [Ralf S. Engelschall]
+
+ *) Moved pth_sigmask() to pth_high.c
+ [Ralf S. Engelschall]
+
+ *) Renamed pth_sigraise() to pth_raise() and added support for
+ per-thread signal delivery via pth_raise().
+ [Ralf S. Engelschall]
+
+ *) Renamed pth.c to pth_lib.c
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU shtool 1.3.1
+ [Ralf S. Engelschall]
+
+ *) Added pth_version() function
+ [Ralf S. Engelschall]
+
+ *) Added a real test Makefile target via new test_std.c
+ [Ralf S. Engelschall]
+
+ *) Added more references to pth.pod
+ [Ralf S. Engelschall]
+
+ ___ ___
+ / _ \ / _ \
+ | | | | (_) |
+ | |_| |\__, |
+ ___\___(_) /_/__________________________________________________________
+
+ Changes between 0.9.20 and 0.9.21 (24-Jun-1999 to 25-Jun-1999)
+
+ *) Upgraded to final shtool 1.3.0 release version
+ [Ralf S. Engelschall]
+
+ *) Removed all variables names from prototypes to avoid conflicts
+ [Ralf S. Engelschall]
+
+ *) Removed unnecessary casts for malloc() calls.
+ [Ralf S. Engelschall]
+
+ *) Added pth_sigraise() function for later implementing pthread_kill() and
+ currently at least for testing whether a thread still exists in the
+ system (by sending it a signal 0).
+ [Ralf S. Engelschall]
+
+ *) Renamed remaining XXX_INITIALIZER to XXX_INIT to be consistent with
+ other init values.
+ [Ralf S. Engelschall]
+
+ *) Prefixed all pth_attr_t attributes with "at_"
+ [Ralf S. Engelschall]
+
+ *) Removed pth_equal(): we're not such crazy than POSIX...
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.19 and 0.9.20 (21-Jun-1999 to 24-Jun-1999)
+
+ *) Upgraded to latest shtool 1.3.0-dev
+ [Ralf S. Engelschall]
+
+ *) Changed pth_yield(void) to pth_yield(pth_t) to allow the specification of
+ a thread which should be favored. This allows the usage of the old
+ concept of co-routines where a thread/routine switches to a particular
+ target thread.
+ [Ralf S. Engelschall]
+
+ *) Added hint about async-safety to pth.pod
+ [Ralf S. Engelschall]
+
+ *) Added POSIX-style consistency wrapper pth_sigmask() for sigprocmask().
+ [Ralf S. Engelschall]
+
+ *) Added try argument to pth_mutex_acquire() to allow us later to
+ emulate POSIX pthread_mutex_trylock()
+ [Ralf S. Engelschall]
+
+ *) Moved errno stuff to a new dedicated pth_errno.c source file
+ [Ralf S. Engelschall]
+
+ *) Changed function signatures to support return codes with errno
+ [Ralf S. Engelschall]
+
+ *) pth_exit(val) in the main() thread now really just terminated the thread
+ and not immediately the process, i.e. the thread goes sleeping until all
+ other threads are gone and then does an exit(val).
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.18 and 0.9.19 (20-Jun-1999 to 21-Jun-1999)
+
+ *) Added a POSIX style pth_detach()
+ [Ralf S. Engelschall]
+
+ *) Added pth_sync.c with POSIX style mutual exclusion locks (mutex),
+ read-write locks (rwlock) and condition variable (cond) support
+ [Ralf S. Engelschall]
+
+ *) Added a trivial mutex demo to test_misc.c
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.17 and 0.9.18 (18-Jun-1999 to 20-Jun-1999)
+
+ *) Greatly extended the manual page pth.pod
+ [Ralf S. Engelschall]
+
+ *) Added inclusion hack to pthread.h.in
+ [Ralf S. Engelschall]
+
+ *) Added per thread cleanup functions pth_cleanup_{push,pop}() modeled
+ directly after the POSIX pthread_cleanup_{push,pop}() functions
+ [Ralf S. Engelschall]
+
+ *) Fixed a memory leak related to pth_key_xxx().
+ [Ralf S. Engelschall]
+
+ *) Added internal pth_pqueue_contains() function
+ [Ralf S. Engelschall]
+
+ *) Added public API function pth_cancel(), pth_cancel_state() and
+ pth_cancel_point() for thread cancellation support modeled after the
+ POSIX thread cancellation facility.
+ [Ralf S. Engelschall]
+
+ *) Removed pthread.* stuff. It will be re-integrated later for Pth 1.1.x
+ [Ralf S. Engelschall]
+
+ *) Added cancellation flags to pth_attr().
+ [Ralf S. Engelschall]
+
+ *) Added cancellation demo support to test_sig.c
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.16 and 0.9.17 (09-Jun-1999 to 18-Jun-1999)
+
+ *) Removed pthread_p.h
+ [Ralf S. Engelschall]
+
+ *) Upgraded to latest shtool 1.3.0-dev
+ [Ralf S. Engelschall]
+
+ *) Added stack overflow detection: a SIGSEGV is created when a
+ guardian memory address at the bottom of the stack was
+ overridden. This SIGSEGV can be even catched by the
+ application.
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.15 and 0.9.16 (04-Jun-1999 to 09-Jun-1999)
+
+ *) Some Autoconf related cleanups.
+ [Ralf S. Engelschall]
+
+ *) Added configure --enable-batch for FreeBSD port
+ [Ralf S. Engelschall]
+
+ *) Removed TODO file
+ [Ralf S. Engelschall]
+
+ *) Moved sigdelete stuff to new pth_util.c source
+ [Ralf S. Engelschall]
+
+ *) Added pth_sigwait_ev()
+ [Ralf S. Engelschall]
+
+ *) Updated pth.pod for recent changes
+ [Ralf S. Engelschall]
+
+ *) Fixed GNU/Linux libc v5 pth_mctx_set() variant
+ [Ralf S. Engelschall, Felix von Leitner <leitner@fefe.de>]
+
+ Changes between 0.9.14 and 0.9.15 (01-Jun-1999 to 04-Jun-1999)
+
+ *) Upgraded to shtool 1.2.9
+ [Ralf S. Engelschall]
+
+ *) Avoid race conditions in emulated sigsetjmp() switching
+ [Ralf S. Engelschall]
+
+ *) Added test_sig.c
+ [Ralf S. Engelschall]
+
+ *) Fixed getsockopt() call: errlen wasn't initialized
+ [Ralf S. Engelschall, Anton Umnikov <anton@rest.dvgu.ru>]
+
+ *) Allow pth_event_walk() also to use PTH_UNTIL_OCCURRED
+ to walk to the next/prev. occurred event in a ring
+ [Ralf S. Engelschall]
+
+ *) Completely overhauled the signal processing in the scheduler
+ [Ralf S. Engelschall]
+
+ *) Added pth_sigwait() with POSIX semantics
+ [Ralf S. Engelschall]
+
+ *) Fixed pth_join(): It returns -1 when only one thread is left
+ [Ralf S. Engelschall]
+
+ *) Autoconf now no longer adds -g for gcc unless --enable-debug
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.13 and 0.9.14 (01-Jun-1999 to 01-Jun-1999)
+
+ *) Simplified the event construction by removing unnecessary PTH_UNTIL_XX
+ flags and renaming the remaining ones to PTH_UNTIL_YY_XXX.
+ [Ralf S. Engelschall]
+
+ *) Renamed PTH_EVENT_IRQ to PTH_EVENT_SIG and implemented it the first time
+ via sigpending()/sigismember().
+ [Ralf S. Engelschall]
+
+ *) Documented the event facility in the manual page
+ [Ralf S. Engelschall]
+
+ *) Switched TCB's name attribute from "char *" to "char[40]" and copy in the
+ value when spawning. This allows applications to generate the name
+ temporarily only.
+ [Ralf S. Engelschall]
+
+ *) Cleaned up source code at lots of edges...
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.12 and 0.9.13 (30-May-1999 to 01-Jun-1999)
+
+ *) Cleaned up Makefile.in even more
+ [Ralf S. Engelschall]
+
+ *) Add stackaddr argument to pth_attr() to allow the application
+ to specificy a particular stack
+ [Ralf S. Engelschall]
+
+ *) Added pthread* files which will contain the POSIX.1c threading
+ ("pthread") API wrapper for PTH. This is still work in progress and not
+ enabled per default (one has to use --enable-pthread).
+ [Ralf S. Engelschall]
+
+ *) Added SunSoft's pthread_June95.ps document ("PThreads Summary")
+ as pthreads.ps
+ [Ralf S. Engelschall]
+
+ *) Update pth.pod to reflect recent changes.
+ [Ralf S. Engelschall]
+
+ *) Optimized pth_time_cmp()
+ [Ralf S. Engelschall]
+
+ *) Added support for per-thread signal masks
+ [Ralf S. Engelschall]
+
+ *) Made pth_mctx_set() more robust: It now uses sigsuspend for
+ waiting, correctly blocks signals and restores SIGUSR1 stuff
+ [Ralf S. Engelschall]
+
+ *) Fixed license messages in sources files
+ [Ralf S. Engelschall]
+
+ *) Removed const from pth_connect and pth_connect_ev to avoid problems
+ [Ralf S. Engelschall]
+
+ *) Make sure Autoconf doesn't add -lnsl twice
+ [Ralf S. Engelschall]
+
+ *) Cleaned up pth_mctx.c even more
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.11 and 0.9.12 (28-May-1999 to 30-May-1999)
+
+ *) Some fixes to test_httpd.c: init of addrlen, REQ_MAX handling
+ [Ralf S. Engelschall]
+
+ *) Allow pth_join(NULL) to join any available terminated thread
+ [Ralf S. Engelschall]
+
+ *) Fixed incorrect pth_event_concat() usages: terminated NULL was missing
+ [Ralf S. Engelschall]
+
+ *) Added pth_connect, pth_connect_ev and pth_accept_ev functions
+ [Ralf S. Engelschall]
+
+ *) Removed unnecessary b_extra stuff from pth_read/pth_write
+ [Ralf S. Engelschall]
+
+ *) Removed "intern" on pth_time(), it's a public API function
+ [Ralf S. Engelschall]
+
+ *) Added pth_timeout() constructor function
+ [Ralf S. Engelschall]
+
+ *) Fixed event handling for all pth_xxx_ev() functions
+ [Ralf S. Engelschall]
+
+ *) Use pth_readline_ev() in test_mp to show how pth_xxx_ev() works
+ [Ralf S. Engelschall]
+
+ *) Converted pth_nap() and pth_join() to use PTH_MODE_STATIC
+ [Ralf S. Engelschall]
+
+ *) Fixed event initialization in event rings
+ [Ralf S. Engelschall]
+
+ *) Kicked out the whole "occurred event ring" stuff because it's not really
+ necessary (one can walk through a single ring and check for occurred
+ events easily) and this way two nasty bugs can be fixed and the event
+ manager simplified a lot. pth_wait() not has only one argument
+ and this is a read-only one, i.e. only the occured flag is set
+ in the events in this ring, but the ring is no longer changed.
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.10 and 0.9.11 (28-May-1999 to 28-May-1999)
+
+ *) Fix warnings in test_httpd.c
+ [Ralf S. Engelschall]
+
+ *) Upgraded to final shtool 1.2.8
+ [Ralf S. Engelschall]
+
+ *) Added PTH_KEY_INIT
+ [Ralf S. Engelschall]
+
+ *) Added PTH_MODE_STATIC for statically allocating
+ a per-thread event. This is now used by the various high-level functions
+ to avoid unnecessary alloc/free sequences.
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.9 and 0.9.10 (25-May-1999 to 28-May-1999)
+
+ *) Cleaned up Makefile.in
+ [Ralf S. Engelschall]
+
+ *) Upgraded to GNU libtool 1.3.2
+ [Ralf S. Engelschall]
+
+ *) Upgraded to new shtool 1.2.8 which includes scpp
+ [Ralf S. Engelschall]
+
+ *) Merged all pth_foo.h's into pth_foo.c's with the help of shtool scpp
+ [Ralf S. Engelschall]
+
+ *) Updated dependencies after pth_p.h overhauling
+ [Ralf S. Engelschall]
+
+ *) Added TODO file
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.8 and 0.9.9 (24-May-1999 to 25-May-1999)
+
+ *) Finally converted library generation to use GNU libtool
+ [Ralf S. Engelschall]
+
+ *) Add hints to BIND 8 and adns to manual page
+ [Ralf S. Engelschall]
+
+ *) Fixed memory leaks in test_httpd and test_mp
+ [Ralf S. Engelschall, Flux <flux@iae.nl>]
+
+ *) Fixed typos in manual page
+ [Ralf S. Engelschall]
+
+ *) Fix -lsocket -lnsl tests for Siemens platforms
+ [Ralf S. Engelschall]
+
+ *) Fix chmod in Autoconf stuff
+ [Ralf S. Engelschall]
+
+ *) Removed unneccessary pth_ring_linked()
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.7 and 0.9.8 (23-May-1999 to 24-May-1999)
+
+ *) Fixed bug in priority queue element counting (q_num)
+ [Ralf S. Engelschall]
+
+ *) pth_spawn() now inherits the attributes from the parent thread
+ [Ralf S. Engelschall]
+
+ *) Merged pth_stat() and pth_load() into a generic extensible pth_ctrl()
+ [Ralf S. Engelschall]
+
+ *) Added new pth_fork() function
+ [Ralf S. Engelschall]
+
+ *) Added depend target to Makefile.in and generated dependencies
+ [Ralf S. Engelschall]
+
+ *) Moved joinable argument from pth_attr() to the flags argument
+ [Ralf S. Engelschall]
+
+ *) Added PTH_CTRL_GETPRIO and PTH_CTRL_GETNAME.
+ [Ralf S. Engelschall]
+
+ *) Typo was everywhere: preemtive => preemptive
+ [Ralf S. Engelschall]
+
+ *) Typo was everywhere: occured => occurred
+ [Ralf S. Engelschall]
+
+ *) Finished manual page
+ [Ralf S. Engelschall]
+
+ *) Removed useless PTH_UNTIL_RUNNING
+ [Ralf S. Engelschall]
+
+ *) Replaced errno support with a better variant
+ [Ralf S. Engelschall]
+
+ *) Lots of small fixes and portability cleanups
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.6 and 0.9.7 (22-May-1999 to 23-May-1999)
+
+ *) Added PORTING document.
+ [Ralf S. Engelschall]
+
+ *) Added errno support (pth_errno.[ch]).
+ [Ralf S. Engelschall]
+
+ *) Added exponential average load calculations for scheduler. The current
+ load value can be retrieved by the application through pth_load().
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.5 and 0.9.6 (21-May-1999 to 22-May-1999)
+
+ *) Added more documentation.
+ [Ralf S. Engelschall]
+
+ *) Autoconf now determines the direction of stack grow and pth_mctx_set()
+ uses this information for sigstack() now.
+ [Ralf S. Engelschall]
+
+ *) Fixed acconfig.h
+ [Ralf S. Engelschall]
+
+ *) Increased stacksizes (was too small for Solaris and friends)
+ [Ralf S. Engelschall]
+
+ *) Switched from BSD-style license to LGPL license
+ [Ralf S. Engelschall]
+
+ *) Fixed a nasty bug in scheduler:
+ when a thread was moved from the wait to the ready queue, it's state
+ wasn't changed to pth_state_ready. This way the next time it was handled
+ it was incorrectly filed to the waiting queue (which caused core dumps
+ because the ev_waiting/ev_occurred pointers didn't exist). This way now
+ the stuff works great also under Solaris!
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.4 and 0.9.5 (21-May-1999 to 21-May-1999)
+
+ *) Renamed pth_{get,set}specific() to pth_key_{get,set}data().
+ [Ralf S. Engelschall]
+
+ *) Renamed remaining pth_message_xxx() to pth_msgport_xxx()
+ [Ralf S. Engelschall]
+
+ *) Added pth_{readline,read,write}_ev() functions which are similar to
+ pth_{readline,read,write}() but have an additional event argument which
+ can be used for timeouts and other parallel events.
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.3 and 0.9.4 (14-May-1999 to 21-May-1999)
+
+ *) Added ring datastructures (pth_ring.[ch]).
+ [Ralf S. Engelschall]
+
+ *) Add an AmigaOS-style message port facility (pth_msg.[ch]).
+ [Ralf S. Engelschall]
+
+ *) Added a message port related test program (test_mp.c).
+ [Ralf S. Engelschall]
+
+ *) Fix scheduler event management bug: when no I/O events existed
+ plus a next timer but other events (e.g. message ports) already occurred,
+ the scheduler blocked instead of handling the already occurred events
+ first.
+ [Ralf S. Engelschall]
+
+ *) Fix bug in event creating: the event occurrence flag has to be cleared in
+ pth_wait() to avoid spinning events which were already occurred.
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.2 and 0.9.3 (14-May-1999 to 14-May-1999)
+
+ *) Added pth_once() for later (pthreads!)
+ [Ralf S. Engelschall]
+
+ *) Splitted pth.c into pth.c and pth_high.c
+ [Ralf S. Engelschall]
+
+ *) Added pth_data.[ch] with pthread style data storage stuff
+ [Ralf S. Engelschall]
+
+ *) Moved readline stuff from test_httpd to pth_high.c as pth_readline()
+ [Ralf S. Engelschall]
+
+ *) Removed debugging fprintf from test_httpd to speed it up
+ [Ralf S. Engelschall]
+
+ *) Fixed listen() call: now uses REQ_MAX for backlog and tests for -1
+ [Ralf S. Engelschall]
+
+ *) Fix a polling-related timer bug in the event manager
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.1 and 0.9.2 (13-May-1999 to 14-May-1999)
+
+ *) renamed pth_asynchronize() to pth_nonblocking()
+ [Ralf S. Engelschall]
+
+ *) removed implicit pth_nonblocking() calls
+ [Ralf S. Engelschall]
+
+ *) speeded up pth_accept by optimizing event alloc/free
+ [Ralf S. Engelschall]
+
+ *) cleaned up pth_waitpid
+ [Ralf S. Engelschall]
+
+ *) Changed semantics of pth_wait(var, NULL): it now means
+ that the events in var are not removed (although their
+ chanining might be changed)
+ [Ralf S. Engelschall]
+
+ *) Renamed internal pth_usleep() to pth_time_usleep()
+ [Ralf S. Engelschall]
+
+ *) Replaced pth_sleep() with pth_nap() and added
+ two replacement functions: pth_sleep() for a variant
+ of sleep(3) and pth_usleep() for a variant of usleep(3).
+ [Ralf S. Engelschall]
+
+ *) Optimized scheduler a little bit by inlining pth_time_{set,add,sub}
+ [Ralf S. Engelschall]
+
+ *) Added pth_pqueue_{head,walk} functions and used it in eventmanager
+ [Ralf S. Engelschall]
+
+ *) Rewrote pth_sched_eventmanager() without a surrounding loop
+ [Ralf S. Engelschall]
+
+ *) Implemented a readline() function to speedup test_httpd
+ [Ralf S. Engelschall]
+
+ Changes between 0.9.0 and 0.9.1 (12-May-1999 to 13-May-1999)
+
+ *) Imported into CVS repository
+ [Ralf S. Engelschall]
+
+ Changes between GENESIS and 0.9.0 (Feb-1999 to 12-May-1999)
+
+ *) Created initial version on FreeBSD
+ [Ralf S. Engelschall]
+
+ *) Ported to Linux
+ [Ralf S. Engelschall]
+
|