The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
0.17	4 December 2005
	Added method cond_timedwait and added second forms of cond_wait and
	cond_timedwait per the ithread specification (where signal var 
	differs from lock var). All elements of perl ithread interface are
	now implemented, with respect to perl 5.8.7.
	
	Introduction of UNIX socket support.  Socket descriptors are written
	to /var/tmp and given rw access by all by default for best support
	on multi-user systems.

	Added eval wrapper around new thread code execution to trap die
	events; thus, join() is now more robust (fewer chances for runtime
	hangs on '$thread->join' due to premature child thread termination).
	
	Fixed bug in _islocked in case where if main thread tried to unlock
	an already unlocked variable, it would not correctly enter if case
	and return undef or croak() due to undef value in @LOCKED resolving
	to numeric 0.
	
	Importing SOMAXCONN and using for socket server listener max socket
	connections (was hard coded at 10) for best (and system-level flexible)
	thread spawn stability under high load.
	
0.16	8 April 2004
	Changed semantics of debugging function: must now specify environment
	variable THREADS_DEBUG to be able to enable and disable debugging.
	If the environment variable does not exist at compile time, then all
	of the debugging code is optimised away.  So performance in production
	environments should be better than before.

	29 March 2004
	Goto &sub considered evil with regards to performance and memory
	leaking.  Therefore removed goto's where appropriate.

0.15	14 January 2004
	Just got too much mail from people attempting to use forks.pm on
	Windows.  Decided to add check for Win32 to Makefile.PL to have it
	die when attempting to run on Windows.  Added documentation to
	explain this.

0.14	7 January 2004
	Removed dependency on load.pm: it really doesn't make sense in a
	forked environment: I don't know what I was thinking in that respect.

	Added dependency on IO::Socket 1.18: we do need auto-flushing sockets
	(which seems to be pretty standard nowadays, but just to make sure).

	Fixed problem with large values / structures being passed with some
	help from Jan-Pieter Cornet at the Amsterdam PM Meeting.  Spotted by
	Paul Golds.  Added test for it.

0.13	4 January 2004
	Looked at fixing the problem with signalling unlocked variables.
	Unfortunately, there does not seem to be a quick solution.  Need to
	abandon this idea right now until I have more time.  Updated
	documentation to let the world know there is an inconsistency.

	Documented the THREADS_DEBUG environment variable and made sure it is
	unset during testing.

	Updated ppport.h to 2.009.  Didn't expect any problems with 5.8.1,
	but you never know.

0.12	2 January 2004
	Fixed problem with signalling thread 0.  Spotted by Stephen Adkins.

0.11    28 December 2003
        Added automatic required modules update using Devel::Required.

	Added requirement for Devel::Required, so that optional modules
	are listed as required on the appropriate systems.

0.10	11 November 2003
	Added check for processes dieing at the length check of a message.
	Not 100% sure whether this will be the best way to handle the main
	thread dieing, e.g. when it exits before all threads have been
	joined.

0.09	24 October 2003
	Apparently, Test::Harness cannot handle testing "threaded" scripts
	using an unthreaded Perl.  Added test for threadedness of the Perl
	being used: if so, skips testing Thread::Queue.  Spotted by several
	CPAN testers.

0.08	24 October 2003
	Shared entities that were also blessed as an object, were not
	correctly handled (ref() versus Scalar::Util::reftype() ).  Spotted
	by Jack Steadman.  Now fixed by using reftype() rather than ref().

	Dependency on Scalar::Util added (not sure when that became core).
	Added tests to excercise Thread::Queue (if available).

	10 October 2003
	Changed async() to make it a little faster by removing an extra call
	from the stack.

0.07	27 September 2003
	Added error detection in case lock or cond_xxx were called on unshared
	variables or cond_xxx were called on an unlocked variable.  Added tests
	for it in the test-suite.

	Added dummy package declaration to forks::shared.pm for CPAN's sake.
	Cleaned up the attribute handler code in forks::shared.pm a bit.

0.06	27 September 2003
	Finally grokked the documentation about attributes.  This allowed me
	to finally write the handler for the ":shared" attribute.  Which in
	the end turned out to be surprisingly simple.

	Adapted the test-suite to test usage of the ":shared" attribute as
	opposed to sharing variables with the "share" subroutine.

0.05	26 September 2003
	Increased dependency on load.pm to 0.11: versions of load.pm before
	that had issues with running under taint.

	Debug statements can now be activated by setting the environment
	variable THREADS_DEBUG to true.  As this is still experimental, this
	feature is only described in the CHANGELOG for now.

	Fixed several issues when running under taint.  Test-suite now runs
	in tainted mode just to be on the safe side.

	Removed some debug statements from the test-suite.

0.04	10 August 2003
	Implemented .xs file munging and source-filter to be able to truly
	support forks.pm under Perl 5.6.x.  Thanks to Juerd Waalboer for the
	idea of the source filter.

	It is now confirmed that forks.pm won't work under 5.005, so the
	minimum version of Perl is now set to 5.6.0 in the Makefile.PL.
	
	7 August 2003
	Tested under 5.8.1-RC4.  The WHOA! messags seem to have disappeared
	but instead a warning has appeared that cannot be suppressed.  This
	was caused by my attempt to activate the :shared attribute.  Since
	that doesn't work anyway, I removed the offending code and the
	warning went away.

	Fixed some warnings in the test-suite.

	Fixed another warning in forks.pm.  Reported by Bradley W. Langhorst.

0.03	2 April 2003
	Fixed a warning in forks.pm.  Reported by Bradley W. Langhorst.

0.02	17 January 2003
	Added dummy -package forks- to forks.pm to fool CPAN into thinking
	it really is the forks.pm module, when in fact it is of course
	threads.pm.

	Fixed some warnings in t/forks01.t.

	28 October 2002
	Made sure length packing uses Network order.

0.01	27 October 2002
	First public version of forks.pm.  Thanks to Lars Fenneberg for all
	the help so far.