The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.31

  • Threads API consistency changes *****
  • Module CLONE and CLONE_SKIP functions now are passed package name as first argument.
  • When CLONE_SKIP true in package, all objects in child threads are now cleared. This occurs after fork (unavoidable affect of system fork COW), which hopefully should be portable with all non-perl modules. Note that arrays and hashes will be emptied, but not converted to undef scalar ref; this differs from ithreads (where all become undef scalar ref). Patches are welcome.
  • Bumped threads $VERSION to 1.72, threads::shared $VERSION to 1.28 to match version-supported features and behavior.
  • Bug fixes *****
  • Improve package detection for CLONE and CLONE_SKIP; now identifies all packages in symbol table, not just packages identified by %INC. This allows for support of multiple modules in a file/module that may have CLONE or CLONE_SKIP functions.
  • Improved Time::HiRes::nanosleep support detection.
  • Corrected possible race condition with $thr->get_stack_size(). Documented expected behavior.
  • Miscellaneous changes *****
  • Added preliminary Perl debugger support. Defaults to tying TTY only to main thread, unless breakpoints exist in user code.
  • Add some time tolerance in forks08.t, to accomodate for busy systems or slow signal handling.
  • New CPAN module requirements: Devel::Symdump and Acme::Damn.
  • Updated to ppport.h 3.16.

Modules

drop-in replacement for Perl threads using fork()
drop-in replacement for Perl threads::shared with forks()
signal management for forks
default class for tie-ing arrays to threads with forks
default class for tie-ing handles to threads with forks
default class for tie-ing hashes to threads with forks
default class for tie-ing scalars to threads with forks