Release Notes: In addition to Intel and PowerPC, atomic functions (inc/dec/swap) are now implemented in the assembly language for SPARC platforms as well. More exotic platforms still use a mutex hash table in these functions. Another important improvement in this release is introduction of portable 64-bit file/stream positioning.
Release Notes: The memory corruption problem in multi-threaded applications compiled with the LinuxThreads library has been fixed. Several minor improvements and bugfixes have been made for streams and for the dynamic string class.
Release Notes: The container classes/templates have been completely redesigned. As an alternative to std::vector, PTypes now offers 2 separate templates, tpodlist and tobjlist, which were specifically designed to eliminate the template "code blow" problem and to perform dynamic array reallocations in the most efficient way. This release also features a Cygwin port, a standard installation procedure for Unix ("make install"), several minor improvements, and bugfixes.
Release Notes: This release features a new "jobqueue" class which serves as a basis for implementing the thread pool model in network server and robot applications. Example 2 in the multithreading examples is now a network server template that demonstrates the usage of the jobqueue class combined with a collection of reusable thread objects. This release also features atomic functions for the PowerPC processor, changes in the DLL/so versioning policies, as well as a number of improvements and fixes in various parts of the library.
Release Notes: The variant-to-string typecast problem that caused compilation errors with GCC 3.3 was fixed. A problem that allowed template lists to accept any class type, even if it was not derived from the unknown class was fixed. Public header files are now included in the documentation in browsable form. A previously undocumented 'Delete notification' mechanism for the component class is now described in the Unknown and Component sections. A better explanation of librarie's philosophy is given in the Introduction.
Release Notes: The library now compiles in 3 versions: static single-threaded, static multithreaded, and dynamic (shared) multithreaded. On some platforms, single-threaded dynamic strings can be twice as fast as multithreaded. The scopelock, scoperead, and scopewrite classes have been added in pasync.h. New format specifiers for outstm::putf() have been added: %a for IP addresses, and %t and %T for timestamps. Other fixes and additions were also made.
Release Notes: This release compiles with Dev-C++/MinGW on Windows. A number of bugfixes and improvements have been made, both in the library code and in wshare. A new section with external links to library add-ons and sample code has been added in the documentation.
Release Notes: A new class, unit, has been added. Unit is a mini-process with its own main() and input/output 'plugs'; several unit objects within the framework of one application can be connected to form pipes, like processes in the Unix shell. A new method for creating local pipes, infile::pipe(), has been added. __ptypes_version and the DLL version resource were not incremented in the previous release. Now they both show 1.7.4.
Release Notes: Wrapper templates for objlist, strlist, and strmap have been created. These templates help to avoid extra (dangerous) pointer typecasts and provide better compile-time type checking when using lists with objects derived from unknown. A new class template, compref, has been added that implements a 'smart' pointer to a reference-counted component object. The function template tpexchange() has been added as a type-safe wrapper for pexchange(). The ipstream::get_myport() and ipmessage::get_myport() methods have been added.
Release Notes: In this release, a new section called "Deploying the shared (dynamic) library" is included in the documentation. It describes in detail the procedure of using and deploying the shared library (DLL on Windows), and discusses the advantages and disadvantages of dynamic linking vs. static linking. PTypes.DLL now contains a version resource. In addition, the library declares a global variable __ptypes_version, which can be checked at runtime or during installation on Unix.