0.12 28 December 2003 Added automatic required modules update using Devel::Required. 0.11 27 September 2003 Added dependency on load.pm, version 0.11, as that has some more fixes, particularly relating to running under taint. 18 September 2003 Increased dependency on Thread::Serialize 0.07, which in turn should get at least load 0.09, which contains several fixes. Removed warning from test-suite as the strange warnings seems to have disappeared with the new version of load. 0.10 13 August 2003 Fixed strange error that would sometimes cause an execution error during global destruction. I guess it's just another case of fake objects being presented for destruction ;-( Tweaked the message in the test-suite a little. 0.09 11 August 2003 Fixed some typos in the Makefile.PL. Adapted some areas in the test-suite to allow for better testing. Made sure that the tests run with strict and warnings. 0.08 30 September 2002 Use "load" instead of "AutoLoader" in all but Thread::Tie itself. Increased dependency of Thread::Serialize to 0.05. 27 September 2002 Removed "our" from $VERSION and @ISA, should shave off some bytes in memory usage, as found from testing with Benchmark::Thread::Size. 5 September 2002 Adapted MANIFEST: the 2nd test-file of the test-suite was missing ;-( so nobody but me did the stress test. 0.07 1 September 2002 Removed shutdown test from Tie02.t: default thread should close down on its own now, you shouldn't get a "Threads were running" error anymore. Added END {} to take care of shutdown of default thread: apparently the going out of scope of the main thread object doesn't cause the DESTROY method to be called. So this is really a workaround for a bug in Perl. Increased dependency on Thread::Serialize to 0.02, to ensure that the most efficient one is always used. 0.06 31 August 2002 Added OPTIMIZATIONS section to pod of T::T::Thread. Changed T::T::Thread to use AutoLoader to defer loading of necessary subroutines to when they are actually needed. This should save memory and CPU for larger programs, or with large numbers of threads. The test-suite takes 1% less memory and uses 5% less CPU: the overhead of compiling is levelled out with the overhead of cloning pre-compiled routines. 0.05 20 August 2002 Dave Mitchell showed me the error of my ways with regards to client server thread programming. Fixed the main handler so that no yield()s are necessary anymore. The whole thing now gets through the test suite more than 10% faster. Scalability to many more threads should now be a lot better too. 0.04 15 August 2002 Added CAVEATS section about limitations of what can be transported between threads. Removed custom freeze and thaw operations from Thread::Tie::Thread. Replaced by Thread::Serialize's versions. Added depenendency on Thread::Serialize. 0.03 13 August 2002 Fixed problem with DESTROYing of tied variables after the thread was shut down. Added error message when trying to do things other than DESTROYing or UNTIEing after the thread was shut down. Completed first version of documentation of Thread::Tie and Thread::Tie::Thread. Added "hammering" test-suite for tied file handles. 12 August 2002 Added "hammering" test-suite. This now tests the array and hash implementation as well as the capability to lock using a semaphore. Streamlined the thread dispatcher further, succeeding in a 9% gain in CPU usage. Removed the DESTROY method from the default implementation of tied variables in the thread (Thread::Tie::(Array|Hash|Scalar)) as they are not necessary anymore since we have untie() support now. Added support for untie(). Untieing a variable will cause the DESTROY method to be called inside the thread before being untied there as well. Any subsequent DESTROY's (after the variable was untied) will be ignored (thereby averting the untie GOTCHA). This can save significant amounts of memory. Added method "shutdown" to Thread::Tie (as class method, to shut down the default thread) and as object method to Thread::Tie::Thread. Added support for "eval" field for evaluating arbitrary perl code inside the thread when tie()ing the variable. 0.02 10 August 2002 Added support for "use" field for using extra modules inside the thread when tie()ing the variable. Added documentation for the TIEHANDLE implementation. Fixed up the default TIEHANDLE implementation. Should now work except for readline() in list context: because the context is not (yet) passed to the thread correctly, reading lines from a file in list context doesn't work. Added BEGIN section to Thread::Tie, causing the default thread to be started during compilation. This can make the thread as lightweight as possible, especially if it is the first module used. Added some intelligence to Thread::Tie::Thread's _freeze and _thaw so that they will not use Storable unless it is really needed. This should be a performance boost for the simple cases. Removed mention of being truly shared because Arthur Bergman pointed out that the current tie() implementation _always_ saves the values in the (thread local) SV. Although this has nothing to do with shared variables, it _does_ cause the values to actually be copied into thread local space everytime they are fetched. 0.01 9 August 2002 First version of Thread::Tie.