+++ /dev/null
-Revision history for Perl extension threads.
-
--
- - Sundry test suite fixes
-
-1.63 Tue Jun 26 21:15:27 EDT 2007
- - Avoid double-free of the thread function
- - Added reference in POD to perlmod section on thread safety
- - Mention leaked and unreferenced scalar warnings in POD
- - Removed BEGIN in threads.pm
- - Only need to require Config
-
-1.62 Thu May 17 16:10:49 2007
- - Fixed :all import option
- - Fixed problems in test suite
- - Subversion repository on Google
-
-1.61 Wed Mar 21 16:09:15 EDT 2007
- - Fix 'list/array' context - both keywords are supported
- - Upgraded ppport.h to Devel::PPPort 3.11
- - Removed embed.t - unreliable
-
-1.59 Mon Feb 5 16:05:44 EST 2007
- - POD tweaks per Wolfgang Laun
-
-1.58 Wed Jan 24 13:15:34 EST 2007
- - Fix race conditions on thread destruction (Dave Mitchell)
- - Ignore thread return value(s) in void context
- - Check for missing args for 'use threads' options
- - Check that stack size argument is numeric
-
-1.57 Wed Dec 20 13:10:26 EST 2006
- - Fixes courtesy of Michael J. Pomraning
- Eliminates self joins
- Eliminates multiple, simultaneous joins on a thread
- Protects thread->state variable with mutexes
- Checks that OS join call is successful
-
-1.56 Fri Dec 15 12:18:47 EST 2006
- - More fixes to test suite
-
-1.55 Fri Dec 15 11:24:46 EST 2006
- - Fixes to test suite
-
-1.54 Thu Dec 14 14:12:30 EST 2006
- - Added ->error() method
-
-1.53 Mon Nov 27 12:08:27 EST 2006
- - Fix for a thread cloning bug
- - Fixes to test suite
-
-1.52 Tue Nov 21 11:04:03 EST 2006
- - Fix compiler warnings
-
-1.51 Wed Nov 15 14:25:30 EST 2006
- - Thread destruction fix
-
-1.49 Fri Nov 3 08:33:28 EST 2006
- - Fix a warning message
-
-1.48 Thu Nov 2 12:33:22 EST 2006
- - Fix for segfault during thread destruction
-
-1.47 Mon Oct 30 16:02:53 EST 2006
- - Fix t/thread.t crash under Win32
- - Test multiple embedded Perl support
-
-1.46 Fri Oct 27 19:51:48 EST 2006
- - Support multiple embedded Perls
- - Document workaround for non-threadsafe modules
-
-1.45 Wed Oct 25 14:22:23 EDT 2006
- - Makefile.PL changes for CORE
- - Updated POD tests
-
-1.44 Wed Oct 11 08:55:50 EDT 2006
- - Complain about bad import options
- - Added example threads script
-
-1.43 Fri Oct 6 15:12:07 EDT 2006
- - Stringify threads objects
- - Removed 'typemap' file
-
-1.42 Mon Sep 18 11:17:13 EDT 2006
- - Fixes to tests
- - Move $threads::threads outside of BEGIN block
-
-1.41 Fri Sep 8 19:28:41 EST 2006
- - Race condition fixes
-
-1.39 Tue Aug 30 12:00:00 EDT 2006
- - Signals are safe in 5.8.0
- - Upgraded ppport.h to Devel::PPPort 3.10
-
-1.38 Tue Aug 1 11:48:56 EDT 2006
- - Fixes to tests
-
-1.37 Fri Jul 21 10:51:36 EDT 2006
- - Revert 'exit' behavior with override
-
-1.36 Mon Jul 10 15:58:13 EDT 2006
- - Ignore signals sent to terminated threads
-
-1.35 Mon Jul 10 09:44:47 EDT 2006
- - Upgraded ppport.h to Devel::PPPort 3.09
- - Fix for Borland compiler
-
-1.34 Thu Jul 6 10:29:37 EDT 2006
- - Added ->is_running, ->is_detached, ->is_joinable, ->wantarray
- - Enhanced ->list to return running or joinable threads
-
-1.33 Mon Jul 3 10:11:20 EDT 2006
- - 'exit' inside a thread silently terminates thread only
- - Added 'threads->exit()' (just calls CORE::exit(0))
- - Handle 'die/exit' in thread warn handlers if thread terminates
- with a warning
- - Give exact accounting of unjoined threads on program termination
- - Fix spurious 'failures' from t/blocks.t
- - Set correct path to threads module in tests that use test.pl
-
-1.32 Mon Jun 5 09:27:53 EDT 2006
- - Fix for HP-UX 10.20 pthread_attr_getstacksize usage
- - Check for threads::shared in tests
-
-1.31 Fri May 19 16:06:42 EDT 2006
- - Explicit thread context
-
-1.29 Thu May 18 16:09:28 EDT 2006
- - Fix warning/core dump from ->create('foo') in BEGIN block
-
-1.28 Wed May 17 14:33:13 EDT 2006
- - Fix for build failure under older Perl versions
- - Skip signalling tests if using unsafe signals
-
-1.27 Thu May 11 11:52:21 EDT 2006
- - Added $thr->kill() method for thread signalling
- - Check for 'C' compiler when building module
-
-1.26 Mon May 8 13:18:29 EDT 2006
- - Fix for Win32 build WRT page size
-
-1.25 Thu May 4 12:34:02 EDT 2006
- - Final sync with blead
- - Lock counters in tests
-
-1.24 Mon Apr 24 10:29:11 EDT 2006
- - assert() that thread 0 is never destructed
- - Determinancy in free.t
-
-1.23 Thu Apr 13 16:57:00 EDT 2006
- - BUG (RE)FIX: Properly free thread's Perl interpreter
- - It's an error to detach a thread twice
- - More XS code cleanups
-
-1.22 Fri Apr 7 21:35:06 EDT 2006
- - Documented maximum stack size error
-
-1.21 Tue Apr 4 13:57:23 EDT 2006
- - Corrected ->_handle() to return a pointer
- - Overload !=
-
-1.19 Sat Mar 25 18:46:02 EST 2006
- - Use 'DEFINE' instead of 'CCFLAGS' in Makefile.PL
-
-1.18 Fri Mar 24 14:21:36 EST 2006
- - ->equal returns 0 on false for backwards compatibility
- - Changed UVs to IVs in XS code (except for TID)
- - Use ->create in tests
-
-1.17 Thu Mar 23 10:31:20 EST 2006
- - Restoration of 'core' build parameters
-
-1.15 Wed Mar 22 13:46:51 EST 2006
- - BUG FIX: Replaced SvPV_nolen_const macro
- - Disabled closure return test again and added note in POD
-
-1.14 Tue Mar 21 08:40:16 EST 2006
- - BUG FIX: Corrected UV formatting string
-
-1.13 Mon Mar 20 15:09:42 EST 2006
- - BUG FIX: Round stack sizes to multiple of page size
- - Use PTHREAD_STACK_MIN if available
-
-1.12 Sun Mar 19 17:34:49 EST 2006
- - Implemented $thr1->equal($thr2) in XS
- - Use $ENV{PERL_CORE} in tests
-
-1.11 Fri Mar 17 13:24:35 EST 2006
- - BUG FIX: Properly free thread's Perl interpreter
- - Removed BUGS POD item regarding returning objects from threads
- - Enabled closure return test in t/problems.t
- - Handle deprecation of :unique in tests
- - XS code cleanup
- - Better POD coverage
-
-1.09 Mon Mar 13 14:14:37 EST 2006
- - Initial (re-)release to CPAN
- - 64-bit TIDs
- - API for thread stack size (courtesy of Dean Arnold)
- - Made threads->list() context sensitive
- - Implemented threads->object($tid) in XS
- - Added $thr->_handle() method
-
-
-Ancient history:
-
-0.03 Mon Jul 2 12:00:50 CEST 2001
- Fixed bug with threads->self() in main thread, thanks Hackworth!
-
-0.02 Sat Jun 30 09:41:00 GMT 2001
- Fixed bug in threads->self() reported by Hackworth
-
-0.01 Tue Apr 24 19:04:12 2001
- Cleaned up documentation
-
use strict;
use warnings;
-our $VERSION = '1.63';
+our $VERSION = '1.64';
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
=head1 VERSION
-This document describes threads version 1.63
+This document describes threads version 1.64
=head1 SYNOPSIS
sub thr_func
{
require Unsafe::Module
- # import Unsafe::Module ...;
+ # Unsafe::Module->import(...);
....
}
If the module is needed inside the I<main> thread, try modifying your
application so that the module is loaded (again using C<require> and
-C<import>) after any threads are started, and in such a way that no other
-threads are started afterwards.
+C<-E<gt>import()>) after any threads are started, and in such a way that no
+other threads are started afterwards.
If the above does not work, or is not adequate for your application, then file
a bug report on L<http://rt.cpan.org/Public/> against the problematic module.
+=item Current working directory
+
+On all platforms except MSWin32, the setting for the current working directory
+is shared among all threads such that changing it in one thread (e.g., using
+C<chdir()>) will affect all the threads in the application.
+
+On MSWin32, each thread maintains its own the current working directory
+setting.
+
+=item Environment variables
+
+Currently, on all platforms except MSWin32, all I<system> calls (e.g., using
+C<system()> or back-ticks) made from threads use the environment variable
+settings from the I<main> thread. In other words, changes made to C<%ENV> in
+a thread will not be visible in I<system> calls made by that thread.
+
+To work around this, set environment variables as part of the I<system> call.
+For example:
+
+ my $msg = 'hello';
+ system("FOO=$msg; echo \$FOO"); # Outputs 'hello' to STDOUT
+
+On MSWin32, each thread maintains its own set of environment variables.
+
=item Parent-child threads
On some platforms, it might not be possible to destroy I<parent> threads while
L<http://www.cpanforum.com/dist/threads>
Annotated POD for L<threads>:
-L<http://annocpan.org/~JDHEDDEN/threads-1.63/threads.pm>
+L<http://annocpan.org/~JDHEDDEN/threads-1.64/threads.pm>
Source repository:
L<http://code.google.com/p/threads-shared/>