The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.17

  • 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.

Modules

drop-in replacement for Perl threads using fork()
drop-in replacement for Perl threads::shared with 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

Provides

in lib/forks.pm
in lib/forks/shared.pm